Skip to content

Commit 9a9e377

Browse files
committed
Initial skeleton: pyproject.toml, CI workflows, logo, package structure
0 parents  commit 9a9e377

File tree

10 files changed

+262
-0
lines changed

10 files changed

+262
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Publish to PyPI
2+
on:
3+
release:
4+
types: [published]
5+
workflow_dispatch:
6+
7+
permissions:
8+
contents: read
9+
id-token: write
10+
11+
jobs:
12+
deploy:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
with:
17+
fetch-depth: 0
18+
19+
- name: Set up Python
20+
uses: actions/setup-python@v3
21+
with:
22+
python-version: '3.x'
23+
24+
- name: Install dependencies
25+
run: |
26+
python -m pip install --upgrade pip
27+
pip install build wheel setuptools
28+
29+
- name: Build package
30+
run: python -m build
31+
32+
- name: Publish package
33+
uses: pypa/gh-action-pypi-publish@release/v1

.github/workflows/tests.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Run tests
2+
on: [push, pull_request]
3+
jobs:
4+
test:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- uses: actions/checkout@v4
8+
- name: Set up Python
9+
uses: actions/setup-python@v5
10+
with:
11+
python-version: '3.x'
12+
- name: Install dependencies
13+
run: |
14+
python -m pip install --upgrade pip
15+
pip install -e .[test]
16+
- name: Test with pytest
17+
run: |
18+
pytest tests/ -v

.gitignore

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Notebooks (except documentation notebooks)
10+
*.ipynb
11+
!docs/**/*.ipynb
12+
13+
# Distribution / packaging
14+
.Python
15+
build/
16+
develop-eggs/
17+
dist/
18+
downloads/
19+
eggs/
20+
.eggs/
21+
lib/
22+
lib64/
23+
parts/
24+
sdist/
25+
var/
26+
wheels/
27+
*.egg-info/
28+
.installed.cfg
29+
*.egg
30+
*.pypirc
31+
32+
# PyInstaller
33+
*.manifest
34+
*.spec
35+
36+
# Installer logs
37+
pip-log.txt
38+
pip-delete-this-directory.txt
39+
40+
# Unit test / coverage reports
41+
htmlcov/
42+
.tox/
43+
.coverage
44+
.coverage.*
45+
.cache
46+
nosetests.xml
47+
coverage.xml
48+
*.cover
49+
.hypothesis/
50+
test_reports/
51+
*.pyc
52+
__pycache__/
53+
.pytest_cache/
54+
55+
# Jupyter Notebook
56+
.ipynb_checkpoints
57+
58+
# pyenv
59+
.python-version
60+
61+
# Environment
62+
.env
63+
.venv
64+
env/
65+
venv/
66+
ENV/
67+
68+
# Shell
69+
*.bat
70+
71+
# IDEs
72+
.vscode/
73+
.idea/
74+
75+
# OS generated files
76+
.DS_Store
77+
.DS_Store?
78+
._*
79+
.Spotlight-V100
80+
.Trashes
81+
ehthumbs.db
82+
Thumbs.db
83+
84+
# Claude
85+
.claude
86+
87+
# Auto-generated version file
88+
*_version.py
89+
90+
# Sphinx documentation build
91+
docs/build/

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 PathSim
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
2+
<p align="center">
3+
<img src="docs/source/logos/pathsim_flight_logo.png" width="300" alt="PathSim-Flight Logo" />
4+
</p>
5+
6+
<p align="center">
7+
<strong>Flight dynamics blocks for PathSim</strong>
8+
</p>
9+
10+
<p align="center">
11+
<a href="https://pypi.org/project/pathsim-flight/"><img src="https://img.shields.io/pypi/v/pathsim-flight" alt="PyPI"></a>
12+
<img src="https://img.shields.io/github/license/pathsim/pathsim-flight" alt="License">
13+
</p>
14+
15+
<p align="center">
16+
<a href="https://docs.pathsim.org/flight">Documentation</a> &bull;
17+
<a href="https://pathsim.org">PathSim Homepage</a> &bull;
18+
<a href="https://github.com/pathsim/pathsim-flight">GitHub</a>
19+
</p>
20+
21+
---
22+
23+
PathSim-Flight extends the [PathSim](https://github.com/pathsim/pathsim) simulation framework with blocks for flight dynamics and aerospace simulations. All blocks follow the standard PathSim block interface and can be connected into simulation diagrams.
24+
25+
## Install
26+
27+
```bash
28+
pip install pathsim-flight
29+
```
30+
31+
## License
32+
33+
MIT

docs/source/examples/.gitkeep

Whitespace-only changes.
42.8 KB
Loading

pyproject.toml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
[build-system]
2+
requires = ["setuptools>=64", "setuptools-scm>=8"]
3+
build-backend = "setuptools.build_meta"
4+
5+
[project]
6+
name = "pathsim-flight"
7+
dynamic = ["version"]
8+
description = "Flight Dynamics Blocks for PathSim"
9+
readme = "README.md"
10+
requires-python = ">=3.9"
11+
license = {text = "MIT"}
12+
authors = [
13+
{name = "PathSim Contributors"}
14+
]
15+
keywords = ["simulation", "flight dynamics", "aerospace", "aircraft", "6DoF"]
16+
classifiers = [
17+
"Development Status :: 3 - Alpha",
18+
"Intended Audience :: Science/Research",
19+
"License :: OSI Approved :: MIT License",
20+
"Programming Language :: Python :: 3",
21+
"Programming Language :: Python :: 3.9",
22+
"Programming Language :: Python :: 3.10",
23+
"Programming Language :: Python :: 3.11",
24+
"Programming Language :: Python :: 3.12",
25+
"Programming Language :: Python :: 3.13",
26+
"Topic :: Scientific/Engineering",
27+
]
28+
dependencies = [
29+
"pathsim",
30+
"numpy>=1.15",
31+
"scipy>=1.2",
32+
]
33+
34+
[project.optional-dependencies]
35+
test = [
36+
"pytest>=7.0",
37+
"pytest-cov>=4.0",
38+
]
39+
40+
[project.urls]
41+
Homepage = "https://github.com/pathsim/pathsim-flight"
42+
Documentation = "https://docs.pathsim.org/flight"
43+
Repository = "https://github.com/pathsim/pathsim-flight"
44+
Issues = "https://github.com/pathsim/pathsim-flight/issues"
45+
46+
[tool.setuptools]
47+
package-dir = {"" = "src"}
48+
49+
[tool.setuptools.packages.find]
50+
where = ["src"]
51+
52+
[tool.setuptools_scm]
53+
write_to = "src/pathsim_flight/_version.py"

src/pathsim_flight/__init__.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
"""
2+
PathSim-Flight: Flight Dynamics Blocks for PathSim
3+
4+
A toolbox providing specialized blocks for flight dynamics simulations
5+
in the PathSim framework.
6+
"""
7+
8+
try:
9+
from ._version import version as __version__
10+
except ImportError:
11+
__version__ = "unknown"
12+
13+
__all__ = ["__version__"]

tests/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)