Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
113 lines (88 loc) · 3.51 KB
/
Copy pathpyproject.toml
File metadata and controls
113 lines (88 loc) · 3.51 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
[build-system]
# Cython compiles the optional native extensions (see setup.py); without it, or
# without a C compiler, the package still builds and runs on its pure-Python code.
requires = ["setuptools>=61.0", "Cython>=3.0"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
package-dir = { "pynecore" = "src/pynecore" }
packages.find = { where = ["src"] }
include-package-data = true
zip-safe = false # Critical for import hooks
[tool.setuptools.package-data]
"pynecore" = ["*.pyi", "*.json"]
# The native extensions' sources ship in the sdist only; a wheel carries the builds.
[tool.setuptools.exclude-package-data]
"pynecore.core" = ["_native_math.pyx", "_native_math.c",
"_native_rolling_sum.pyx", "_native_rolling_sum.c",
"_native_color.pyx", "_native_color.c"]
[tool.distutils]
egg_info.egg_base = "build"
[project]
name = "pynesys-pynecore"
version = "6.10.9" # PineVersion.Major.Minor
description = "Pine Script-compatible Python runtime for indicators and strategies, validated against TradingView"
authors = [{ name = "PYNESYS LLC", email = "hello@pynesys.com" }]
readme = "README.md"
requires-python = ">=3.11"
license = { text = "Apache-2.0" }
classifiers = [
"Programming Language :: Python :: 3",
"Operating System :: OS Independent",
]
#
# Dependencies
#
# No dependencies for core functionality, it has only a minimal CLI functionality
dependencies = []
# With user-friendly CLI
# Typer floor: 0.16 is the first release exposing TyperChoice, needed to build
# plugin-injected CLI options without depending on Click (Typer dropped its own
# Click dependency in 0.26 in favour of a vendored fork).
optional-dependencies.cli = ["typer>=0.16", "rich", "tzdata"]
# All optional dependencies for cli and all built-in providers
optional-dependencies.all = ["typer>=0.16", "rich", "ccxt", "tzdata"]
#Optional dependencies for development
optional-dependencies.dev = ["pytest", "pytest-spec", "Cython>=3.0"]
### Providers
# For all built-in providers to work (CCXT)
optional-dependencies.providers = ["ccxt"]
# For CCXT provider to work
optional-dependencies.ccxt = ["ccxt"]
#
# Commands
#
scripts.pyne = "pynecore.cli:app"
[project.entry-points."pyne.plugin"]
ccxt = "pynecore.providers.ccxt:CCXTProvider"
replay = "pynecore.providers.replay:ReplayProvider"
#
# URLs
#
[project.urls]
"Homepage" = "https://pynecore.org"
"Repository" = "https://github.com/pynesys/pynecore"
"Documentation" = "https://pynecore.org/docs"
"Issues" = "https://github.com/pynesys/pynecore/issues"
# Social
"X" = "https://x.com/pynesys"
"Discord" = "https://discord.pynesys.io"
"Discussions" = "https://github.com/PyneSys/pynecore/discussions"
#
# Wheels
#
# Platform wheels carry the compiled ``pynecore.core._native_math`` and
# ``pynecore.core._native_rolling_sum`` and ``pynecore.core._native_color``.
# Every one is tested against the pure-Python code
# it replaces, and must actually contain the extensions; the venue tests pin the
# pure-Python code itself, which is the same on every platform.
[tool.cibuildwheel]
build = "cp311-* cp312-* cp313-* cp314-*"
skip = "*-win32 *-manylinux_i686 *-musllinux_i686"
test-requires = ["pytest", "pytest-spec"]
test-command = """\
pytest -p no:cacheprovider \
{project}/tests/t01_lib/t04_math/test_016_native_math_matches_python.py \
{project}/tests/t01_lib/t04_math/test_022_native_rolling_sum_matches_python.py \
{project}/tests/t00_pynecore/core/test_114_native_color_matches_python.py
"""
test-environment = { PYNE_REQUIRE_NATIVE_MATH = "1", PYNE_REQUIRE_NATIVE_COLOR = "1" }