latest pushes

This commit is contained in:
2024-12-04 03:37:14 -05:00
parent fafba9c370
commit 4ff8fb7931
19 changed files with 311 additions and 190 deletions

0
.gitignore vendored Normal file
View File

View File

@@ -1,71 +0,0 @@
# Code of Conduct - Architectural Standards
## Our Pledge
In the interest of fostering a clear and consistent development environment, we pledge to maintain architectural integrity across all programming languages and implementations within this project.
## Fundamental Principle
- **Architectural names remain consistent and unchanging regardless of programming language implementation. Whether written in Python, Java, C++, or any other language, the architectural pattern's name and core principles remain identical and immutable.**
## Our Standards
### Architectural Consistency
We recognize that architectural patterns and their nomenclature remain constant regardless of the programming language used for implementation. This means:
1. Architectural pattern names shall remain consistent across all programming languages
2. The fundamental principles of each architectural pattern shall be preserved regardless of implementation
3. Documentation must reference architectural patterns using their standard industry names
### Examples of Name Preservation
- A **Repository Pattern** remains a "Repository Pattern" whether implemented in:
- Java
- Python
- C#
- JavaScript
- Go
- Any other programming language
- An **Event Sourcing** architecture remains "Event Sourcing" whether built in:
- Rust
- Kotlin
- TypeScript
- PHP
- Any other technology stack
- **Regardless of the programming language used, the name Bellande remains consistent across all architectures and code**
### Implementation Guidelines
1. When implementing architectural patterns:
- Always use the standard architectural name
- Never rename patterns based on language preferences
- Document implementations using consistent architectural terminology
- Maintain pattern names even when adapting to language-specific features
2. Code organization must:
- Use standard architectural pattern names in all documentation
- Maintain consistent naming across different services/modules
- Reflect the chosen architecture's established terminology
- Preserve architectural names in comments and documentation
## Enforcement
Project maintainers are responsible for:
1. Enforcing consistent architectural naming across all implementations
2. Reviewing code to ensure architectural pattern names remain standard
3. Providing guidance on proper architectural pattern naming
4. Maintaining documentation that reflects these naming standards
## Questions and Clarifications
If you have questions about:
- How to properly name architectural patterns in your implementation
- Whether your naming conventions align with architectural standards
- How to maintain naming consistency across different services
Please reach out to the project maintainers or consult the architecture documentation.
## Version and Updates
- Version: 1.0
- Last Updated: October 26, 2024
This Code of Conduct is a living document and may be updated to better serve the project's needs while maintaining its core principle of architectural naming consistency.
## Organization Code of Conduct
The latest uptodate Code of Conduct will be distributed under the [CODE_OF_CONDUCT](https://github.com/Robotics-Sensors/CODE_OF_CONDUCT)

View File

@@ -1,72 +0,0 @@
# Contributing to Bellande Robotics Sensors Research Innovations Center
We're excited that you're interested in contributing to the Bellande Robotics Sensors Research Innovations Center! This document outlines the process for contributing to our organization and this repository!
## Contributing to the Organization
To contribute to the Bellande Robotics Sensors Research Innovations Center organization, please visit our [Contributing Repository](https://github.com/Robotics-Sensors/bellande_robotics_sensors_research_innovations_center_contributor)
## Table of Contents
1. [Contributing to the Organization](https://github.com/Robotics-Sensors/bellande_robotics_sensors_research_innovations_center_contributor)
- [Creating a Repository](https://github.com/Robotics-Sensors/bellande_robotics_sensors_research_innovations_center_contributor)
- [Team Requests](https://github.com/Robotics-Sensors/bellande_robotics_sensors_research_innovations_center_contributor)
- [Security](https://github.com/Robotics-Sensors/bellande_robotics_sensors_research_innovations_center_contributor)
2. [Contributing to Repositories](#contributing-to-repositories)
- [New Features](#new-features)
- [Bug Fixes](#bug-fixes)
- [Security Issues](#security-issues)
- [Other Contributions](#other-contributions)
### Creating a Repository
1. Fork the [contributor repository](https://github.com/Robotics-Sensors/bellande_robotics_sensors_research_innovations_center_contributor).
2. Create a new branch with a descriptive name for your proposed repository.
3. Add a detailed description of the proposed repository in a markdown file.
4. Submit a pull request with your proposal.
5. Wait for review and approval from the organization administrators.
### Team Requests
1. To request joining a team or creating a new team:
- Open an issue in the [contributor repository](https://github.com/Robotics-Sensors/bellande_robotics_sensors_research_innovations_center_contributor).
- Use the title format: "Team Request: [Team Name]"
- Provide details about your expertise and why you want to join or create the team.
2. An administrator will review your request and respond accordingly.
### Security
For organization-wide security concerns:
1. Do not publicly disclose the issue.
2. Contact the organization administrators directly through a private channel.
3. Provide a detailed description of the security concern.
## Contributing to Repositories
### New Features
1. Fork the repository you want to contribute to.
2. Create a new branch with a descriptive name for your feature.
3. Implement your feature, following the project's coding standards and guidelines.
4. Write tests for your new feature if applicable.
5. Update documentation as necessary.
6. Submit a pull request with a clear description of the new feature.
### Bug Fixes
1. Fork the repository containing the bug.
2. Create a new branch with a descriptive name for your bug fix.
3. Fix the bug and add tests to prevent regression if possible.
4. Update documentation if necessary.
5. Submit a pull request with a clear description of the bug and your fix.
### Security Issues
For repository-specific security issues:
1. Do not publicly disclose the issue.
2. Contact the repository maintainers directly through a private channel or request a issue in the reposiroty
3. Provide a detailed description of the security vulnerability.
4. Wait for further instructions from the maintainers.
### Other Contributions
We welcome other types of contributions, such as:
- Documentation improvements
- Code refactoring
- Performance optimizations- Tooling and infrastructure improvements
For these contributions, follow a similar process to submitting new features or bug fixes.
## Code of Conduct
Please note that all contributors are expected to adhere to our Code of Conduct. Respectful and inclusive behavior is mandatory for all participants in our project.
Thank you for contributing to the Bellande Robotics Sensors Research Innovations Center!

Binary file not shown.

Binary file not shown.

Binary file not shown.

2
Package/python/publish.sh Executable file
View File

@@ -0,0 +1,2 @@
python setup.py sdist
twine upload dist/*

43
Package/python/setup.py Normal file
View File

@@ -0,0 +1,43 @@
from setuptools import setup, find_packages
with open("../../README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
setup(
name="bellande_probability",
version="0.0.3",
description="Robots Probability",
long_description=long_description,
long_description_content_type="text/markdown",
author="RonaldsonBellande",
author_email="ronaldsonbellande@gmail.com",
packages=find_packages(where="src"),
package_dir={"": "src"},
include_package_data=True,
install_requires=[
"numpy",
],
classifiers=[
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Programming Language :: Python",
],
keywords=["package", "setuptools"],
python_requires=">=3.0",
extras_require={
"dev": ["pytest", "pytest-cov[all]", "mypy", "black"],
},
package_data={
'bellande_probability': ['Bellande_Probability'],
},
entry_points={
'console_scripts': [
'bellande_probability_api = bellande_probability.bellande_probability_api:main',
],
},
project_urls={
"Home": "https://github.com/Robotics-Sensors/bellande_probability",
"Homepage": "https://github.com/Robotics-Sensors/bellande_probability",
"documentation": "https://github.com/Robotics-Sensors/bellande_probability",
"repository": "https://github.com/Robotics-Sensors/bellande_probability",
},
)

1
Package/python/src/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
bellande_probability.egg-info

View File

View File

@@ -0,0 +1,3 @@
"""
ros_extension
"""

View File

@@ -0,0 +1,81 @@
# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#!/usr/bin/env python3
import requests
import argparse
import json
import sys
def make_bellande_probability_distribution_request(mu_func, sigma_func, x, dimensions, full_auth=False):
base_url = "https://bellande-robotics-sensors-research-innovation-center.org/api/Bellande_Probability"
endpoint = f"{base_url}/bellande_probability_full_auth" if full_auth else \
f"{base_url}/bellande_probability"
# Convert string input to list if it's a string
if isinstance(x, str):
x = json.loads(x)
auth = {
"full_authorization_key": "bellande_web_api_full_auth"
} if full_auth else {
"authorization_key": "bellande_web_api_opensource"
}
payload = {
"mu_func": mu_func,
"sigma_func": sigma_func,
"x": x,
"dimensions": dimensions,
"auth": auth
}
headers = {
'accept': 'application/json',
'Content-Type': 'application/json'
}
try:
response = requests.post(endpoint, json=payload, headers=headers)
response.raise_for_status()
return response.json()
except requests.RequestException as e:
print(f"Error making request: {e}", file=sys.stderr)
sys.exit(1)
def main():
parser = argparse.ArgumentParser(description="Run Bellande Distribution API")
parser.add_argument("--mu-func", required=True, help="mu function as string")
parser.add_argument("--sigma-func", required=True, help="sigma function as string")
parser.add_argument("--x", required=True, help="Input vector as JSON-formatted list")
parser.add_argument("--dimensions", type=int, required=True, help="Number of dimensions")
parser.add_argument("--full-auth", action="store_true", help="Use full authentication")
args = parser.parse_args()
try:
result = make_bellande_probability_distribution_request(
args.mu_func,
args.sigma_func,
args.x,
args.dimensions,
args.full_auth
)
print(json.dumps(result, indent=2))
except json.JSONDecodeError as e:
print(f"Error: Invalid JSON format in input - {e}", file=sys.stderr)
sys.exit(1)
if __name__ == "__main__":
main()

2
Package/rust/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
target
Cargo.lock

24
Package/rust/Cargo.toml Normal file
View File

@@ -0,0 +1,24 @@
[package]
name = "bellande_probability"
version = "0.1.0"
edition = "2021"
authors = ["Bellande Robotics Sensors Research Innovation Center"]
description = "A tool for running Bellande Probability calculations via API"
license = "GPL-3.0-or-later"
repository = "https://github.com/Robotics-Sensors/bellande_probability"
readme = "README.md"
keywords = ["robotics", "algorithms", "research"]
categories = ["science", "algorithms"]
[dependencies]
reqwest = { version = "0.11", features = ["json"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
structopt = "0.3"
tokio = { version = "1.0", features = ["full"] }
thiserror = "1.0"
anyhow = "1.0"
[lib]
name = "bellande_probability"
path = "src/bellande_probability.rs"

4
Package/rust/publish.sh Executable file
View File

@@ -0,0 +1,4 @@
cp ../../README.md .
bash ../../git_scripts/push.sh
cargo publish
rm -f README.md

View File

@@ -0,0 +1,110 @@
// Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
use reqwest;
use serde_json::{json, Value};
use std::error::Error;
use structopt::StructOpt;
#[derive(StructOpt, Debug)]
#[structopt(name = "bellande_probability", about = "Bellande Probability Tool")]
struct Opt {
#[structopt(long, help = "First coordinate as JSON-formatted list")]
node0: String,
#[structopt(long, help = "Second coordinate as JSON-formatted list")]
node1: String,
#[structopt(long, help = "Probability threshold value")]
threshold: f64,
#[structopt(long, help = "Number of dimensions")]
dimensions: i32,
#[structopt(long, help = "Use full authentication")]
full_auth: bool,
}
async fn make_bellande_probability_request(
node0: Value,
node1: Value,
threshold: f64,
dimensions: i32,
full_auth: bool,
) -> Result<Value, Box<dyn Error>> {
let client = reqwest::Client::new();
let base_url = "https://bellande-robotics-sensors-research-innovation-center.org/api/Bellande_Probability";
let endpoint = if full_auth {
format!("{}/bellande_probability_full_auth", base_url)
} else {
format!("{}/bellande_probability", base_url)
};
let auth = if full_auth {
json!({
"full_authorization_key": "bellande_web_api_full_auth"
})
} else {
json!({
"authorization_key": "bellande_web_api_opensource"
})
};
let payload = json!({
"node0": node0,
"node1": node1,
"threshold": threshold,
"dimensions": dimensions,
"auth": auth
});
let response = client
.post(&endpoint)
.header("accept", "application/json")
.header("Content-Type", "application/json")
.json(&payload)
.send()
.await?
.json::<Value>()
.await?;
Ok(response)
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let opt = Opt::from_args();
let node0: Value = serde_json::from_str(&opt.node0)
.map_err(|e| format!("Error parsing node0: {}", e))?;
let node1: Value = serde_json::from_str(&opt.node1)
.map_err(|e| format!("Error parsing node1: {}", e))?;
match make_bellande_probability_request(
node0,
node1,
opt.threshold,
opt.dimensions,
opt.full_auth
).await {
Ok(result) => {
println!("{}", serde_json::to_string_pretty(&result)?);
}
Err(e) => {
eprintln!("Error: {}", e);
std::process::exit(1);
}
}
Ok(())
}

View File

@@ -10,32 +10,7 @@
# Author, Creator and Maintainer # Author, Creator and Maintainer
- **Ronaldson Bellande** - **Ronaldson Bellande**
# API HTTP Usability (BELLANDE FORMAT) # API Usability
```
# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# GNU General Public License v3.0 or later
url: https://bellande-robotics-sensors-research-innovation-center.org
endpoint_path:
bellande_probabilistic: /api/Bellande_Probabilistic/bellande_probabilistic
Bellande_Framework_Access_Key: bellande_web_api_opensource
```
# API HTTP Usability (JSON FORMAT)
``` ```
{ {
"license": [ "license": [
@@ -56,12 +31,11 @@ Bellande_Framework_Access_Key: bellande_web_api_opensource
], ],
"url": "https://bellande-robotics-sensors-research-innovation-center.org", "url": "https://bellande-robotics-sensors-research-innovation-center.org",
"endpoint_path": { "endpoint_path": {
"bellande_probabilistic": "/api/Bellande_Probabilistic/bellande_probabilistic" "bellande_probabilistic": "/api/Bellande_Probability/bellande_probability"
}, },
"Bellande_Framework_Access_Key": "bellande_web_api_opensource" "Bellande_Framework_Access_Key": "bellande_web_api_opensource"
} }
``` ```
# API Payload Example # API Payload Example
``` ```
{ {
@@ -81,7 +55,7 @@ Bellande_Framework_Access_Key: bellande_web_api_opensource
# Quick Bellande API Testing # Quick Bellande API Testing
``` ```
curl -X 'POST' \ curl -X 'POST' \
'https://bellande-robotics-sensors-research-innovation-center.org/api/Bellande_Distribution/bellande_distribution_function_nd' \ 'https://bellande-robotics-sensors-research-innovation-center.org/api/Bellande_Probability/bellande_probability' \
-H 'accept: application/json' \ -H 'accept: application/json' \
-H 'Content-Type: application/json' \ -H 'Content-Type: application/json' \
-d '{ -d '{
@@ -95,6 +69,40 @@ curl -X 'POST' \
}' }'
``` ```
# Bellande Limit Usage
## Website Crates
- https://crates.io/crates/bellande_probability
### Installation
- `cargo add bellande_probability`
## Website PYPI
- https://pypi.org/project/bellande_probability
### Installation
- `$ pip install bellande_probability`
### Usage
```
bellande_distribution \
--mu-func "i * 2" \
--sigma-func "1 + i * 0.1" \
--x "[1.0, 2.0, 3.0]" \
--dimensions 3
```
### Upgrade (if not upgraded)
- `$ pip install --upgrade bellande_probability`
```
Name: bellande_probability
Summary: Computes the next step towards a target node
Home-page: github.com/RonaldsonBellande/bellande_probability
Author: Ronaldson Bellande
Author-email: ronaldsonbellande@gmail.com
License: GNU General Public License v3.0
```
## Published Paper ## Published Paper
``` ```
@@ -102,7 +110,5 @@ Coming Soon
``` ```
## License ## License
Bellande Probabilistic is distributed under the [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/), see [LICENSE](https://github.com/RonaldsonBellande/bellande_probabilistic/blob/main/LICENSE) and [NOTICE](https://github.com/RonaldsonBellande/bellande_probabilistic/blob/main/LICENSE) for more information. This Algorithm or Models is distributed under the [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/), see [LICENSE](https://github.com/RonaldsonBellande/bellande_probabilistic/blob/main/LICENSE) and [NOTICE](https://github.com/RonaldsonBellande/bellande_probabilistic/blob/main/LICENSE) for more information.
## Code of Conduct
Bellande Probabilistic is distributed under the [CODE_OF_CONDUCT](https://github.com/Robotics-Sensors/bellande_step/blob/main/CODE_OF_CONDUCT.md) and [NOTICE](https://github.com/Robotics-Sensors/bellande_step/blob/main/CODE_OF_CONDUCT.md) for more information.

3
git_scripts/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
fix_errors.sh
push.sh
repository_recal.sh

View File

@@ -1,15 +0,0 @@
curl -X 'POST' \
'https://bellande-robotics-sensors-research-innovation-center.org/api/Bellande_Distribution/bellande_distribution_function_nd' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"mu_func": "i * 0.5",
"sigma_func": "1 + i * 0.1",
"x": [1.0, 2.0, 3.0],
"dimensions": 3,
"auth": {
"authorization_key": "bellande_web_api_opensource"
}
}'
echo