Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
126 lines (117 loc) · 3.75 KB
/
Copy pathpyproject.toml
File metadata and controls
126 lines (117 loc) · 3.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
[build-system]
requires = ["setuptools", "setuptools_scm[toml]>=6.2", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "fprime-fpy"
dynamic = ["version"]
description = "Fpy Advanced Sequencing Language for F Prime"
readme = "README.md"
requires-python = ">=3.10"
license = {file = "LICENSE.txt"}
keywords = ["fprime", "embedded", "nasa", "flight", "software"]
authors = [
{name = "Zimri Leisher", email = "zimri.leisher@gmail.com"},
{name = "Michael Starch", email = "Michael.D.Starch@jpl.nasa.gov"},
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Operating System :: Unix",
"Operating System :: POSIX",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"License :: OSI Approved :: Apache Software License",
]
dependencies = [
"pytest>=6.2.4",
"lark>=1.2.2",
]
####
# Optional dependencies:
#
# The LLVM/wasm backend is opt-in: `pip install fprime-fpy[wasm]`. Without it,
# the fpy bytecode backend still works; anything that reaches the LLVM backend
# raises a BackendError pointing at this extra.
####
[project.optional-dependencies]
wasm = [
# Compiles the LLVM IR the backend emits.
"llvmlite>=0.44.0",
# Provides wasm-ld (LLVM's linker) to link the LLVM/wasm backend's object output.
"ziglang>=0.16.0",
]
[project.urls]
Homepage = "https://fprime.jpl.nasa.gov"
Documentation = "https://nasa.github.io/fprime/"
Repository = "https://github.com/fprime-community/fpy"
####
# Entry Points:
#
# Defines the list of entry-level (scripts) that are defined by this package. This allows
# standard use of utilities that ship as part of F prime.
####
[project.scripts]
fprime-fpyc = "fpy.main:compile_main"
fprime-fpy-asm = "fpy.main:assemble_main"
fprime-fpy-disasm = "fpy.main:disassemble_main"
fprime-fpy-cmd = "fpy.main:cmd_main"
####
# The test suite lives in test/fpy. The fprime submodules and the harness
# build trees carry their own (huge) test collections, so keep pytest from
# ever recursing into them.
####
[tool.pytest.ini_options]
testpaths = ["test/fpy"]
norecursedirs = [
"fprime",
"fprime-wasm",
"harness",
"build-*",
".*",
"*.egg",
"build",
"dist",
"venv",
]
####
# setuptools_scm dynamically generates version number from git, as well as automatically
# include all data files tracked by git (e.g. flash/static/** files).
# See https://setuptools.pypa.io/en/latest/userguide/datafiles.html
####
[tool.setuptools_scm]
####
# The test suite covers both backends, so a development environment picks up
# the wasm extra without having to ask for it. The harness group holds the
# tools that build the C++ test harness from the fprime submodules; the pins
# match test/fprime/requirements.txt.
####
[dependency-groups]
dev = [
"fprime-fpy[wasm]",
"black>=26.5.1",
"pre-commit>=4.6.0",
{include-group = "harness"},
]
harness = [
"cmake==3.26.0",
"fprime-fpp==3.3.0",
"fprime-tools==4.3.0",
"ninja==1.11.1.4",
]
####
# Additional notes
#
# With regards to the configuration of the older versions of setup.py:
# - package_data: included by default, and setuptools_scm will automatically include all files tracked by git
# - package discovery (src/): setuptools will automatically discover all packages as we use the src-layout
#
# Reference:
# - https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
# - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html#src-layout
####