Repository navigation
Expand file tree
/
Copy pathdev.toml
More file actions
116 lines (111 loc) · 4.16 KB
/
Copy pathdev.toml
File metadata and controls
116 lines (111 loc) · 4.16 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
# The dev channel, automation_file_dev. The publish-dev job of .github/workflows/ci-dev.yml builds it by
# writing this file to pyproject.toml (scripts/dev_release.py). The version below is a floor: CI publishes
# one patch above the newest release on PyPI and commits nothing back.
[build-system]
requires = ["setuptools>=77"]
build-backend = "setuptools.build_meta"
[project]
name = "automation_file_dev"
version = "0.0.57"
authors = [
{ name = "JE-Chen", email = "jechenmailman@gmail.com" },
]
description = "Universal file layer and data-pipeline runtime: one API for local and remote storage, integrity monitoring, pipelines, scheduling, notifications, audit and MCP automation (dev channel)."
keywords = [
"file", "storage", "s3", "azure-blob", "sftp", "webdav", "pipeline", "dag", "scheduler",
"file-integrity", "audit", "automation", "mcp",
]
readme = { file = "README.md", content-type = "text/markdown" }
requires-python = ">=3.10"
license = "MIT"
license-files = ["LICENSE"]
# The base install: the action engine, local operations, HTTP, the storage layer's local and
# in-memory backends, pipelines, events, audit, triggers and the servers. No cloud SDK and no GUI
# toolkit: each of those is an extra below, imported only when its feature is used.
dependencies = [
"requests>=2.31.0",
"tqdm>=4.66.0",
"watchdog>=4.0.0",
"cryptography>=50.0.0",
"prometheus_client>=0.26.0",
"defusedxml>=0.7.1",
"je_action_core>=0.0.2",
"PyYAML>=6.0.3",
# zoneinfo has no time-zone database of its own on Windows; a scheduler cron with a zone needs one.
"tzdata>=2024.1; platform_system == 'Windows'",
"opentelemetry-api>=1.44.0",
"opentelemetry-sdk>=1.44.0",
"tomli>=2.0.1; python_version<\"3.11\""
]
classifiers = [
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Development Status :: 2 - Pre-Alpha",
"Environment :: Win32 (MS Windows)",
"Environment :: MacOS X",
"Environment :: X11 Applications",
"Operating System :: OS Independent"
]
[project.optional-dependencies]
# One extra per backend, so each can be installed on its own. `ftp` and `webdav` need nothing beyond
# the base install (ftplib is in the standard library; requests and defusedxml are base
# dependencies); they exist so that every backend has an extra of its name.
s3 = ["boto3>=1.34.0"]
azure = ["azure-storage-blob>=12.19.0"]
gdrive = [
"google-api-python-client>=2.100.0",
"google-auth-httplib2>=0.2.0",
"google-auth-oauthlib>=1.2.0"
]
dropbox = ["dropbox>=11.36.2"]
sftp = ["paramiko>=3.4.0"]
ftp = []
webdav = []
smb = ["smbprotocol>=1.13.0"]
fsspec = ["fsspec>=2024.2.0"]
onedrive = ["msal>=1.39.0"]
box = ["boxsdk>=10.15.0,<11"]
parquet = ["pyarrow>=25.0.1"]
gui = ["PySide6>=6.11.2,<6.12"]
# Everything above. The list is written out because the two channels have different package names,
# so neither can refer to its own extras by name and stay identical to the other.
all = [
"boto3>=1.34.0",
"azure-storage-blob>=12.19.0",
"google-api-python-client>=2.100.0",
"google-auth-httplib2>=0.2.0",
"google-auth-oauthlib>=1.2.0",
"dropbox>=11.36.2",
"paramiko>=3.4.0",
"smbprotocol>=1.13.0",
"fsspec>=2024.2.0",
"msal>=1.39.0",
"boxsdk>=10.15.0,<11",
"pyarrow>=25.0.1",
"PySide6>=6.11.2,<6.12"
]
test = [
"pytest>=8.0.0",
"pytest-cov>=5.0.0"
]
dev = [
"pytest>=8.0.0",
"pytest-cov>=5.0.0",
"ruff>=0.6.0",
"mypy>=1.11.0",
"pre-commit>=3.7.0",
"build>=1.2.0",
"twine>=5.1.0"
]
[project.scripts]
automation_file_mcp = "automation_file.server.mcp_server:_cli"
[project.urls]
"Homepage" = "https://github.com/Integration-Automation/FileAutomation"
"Source" = "https://github.com/Integration-Automation/FileAutomation"
"Issues" = "https://github.com/Integration-Automation/FileAutomation/issues"
[tool.setuptools.packages]
# Only the library is installed. Without `include`, `tests` (it has an `__init__.py`) ships as a top-level package.
find = { namespaces = false, include = ["automation_file", "automation_file.*"] }