latest pushes
This commit is contained in:
parent
1a43141a1c
commit
00da7c29fc
0
.gitignore
vendored
Normal file
0
.gitignore
vendored
Normal file
2
Package/python/publish.sh
Executable file
2
Package/python/publish.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
python setup.py sdist
|
||||||
|
twine upload dist/*
|
43
Package/python/setup.py
Normal file
43
Package/python/setup.py
Normal 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
1
Package/python/src/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
bellande_probability.egg-info
|
0
Package/python/src/__init__.py
Normal file
0
Package/python/src/__init__.py
Normal file
3
Package/python/src/bellande_probabilistic/__init__.py
Normal file
3
Package/python/src/bellande_probabilistic/__init__.py
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
"""
|
||||||
|
ros_extension
|
||||||
|
"""
|
@ -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
2
Package/rust/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
target
|
||||||
|
Cargo.lock
|
24
Package/rust/Cargo.toml
Normal file
24
Package/rust/Cargo.toml
Normal 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
4
Package/rust/publish.sh
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
cp ../../README.md .
|
||||||
|
bash ../../git_scripts/push.sh
|
||||||
|
cargo publish
|
||||||
|
rm -f README.md
|
110
Package/rust/src/bellande_probability.rs
Normal file
110
Package/rust/src/bellande_probability.rs
Normal 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(())
|
||||||
|
}
|
70
README.md
70
README.md
@ -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
3
git_scripts/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fix_errors.sh
|
||||||
|
push.sh
|
||||||
|
repository_recal.sh
|
Loading…
Reference in New Issue
Block a user