@@ -7,7 +7,7 @@ requires = [
77
88[project ]
99name = " tap-transifex"
10- description = " `tap-transifex` is a Singer tap for Transifex, built with the Meltano SDK for Singer Taps. "
10+ description = " Singer tap for Transifex, built with the Meltano SDK for Singer Taps"
1111readme = " README.md"
1212keywords = [
1313 " ELT" ,
@@ -25,54 +25,38 @@ classifiers = [
2525 " Programming Language :: Python :: 3.11" ,
2626 " Programming Language :: Python :: 3.12" ,
2727 " Programming Language :: Python :: 3.13" ,
28+ " Programming Language :: Python :: 3.14" ,
2829]
2930dynamic = [
3031 " version" ,
3132]
3233dependencies = [
33- " requests~=2.32.2" ,
3434 " singer-sdk~=0.47.0" ,
3535]
36- optional-dependencies.dev = [
37- " tap-transifex[testing,typing]" ,
36+ urls.Documentation = " https://github.com/edgarrmondragon/tap-transifex#readme"
37+ urls.Homepage = " https://github.com/edgarrmondragon/tap-transifex"
38+ urls.Repository = " https://github.com/edgarrmondragon/tap-transifex"
39+ scripts."tap-transifex" = " tap_transifex.tap:TapTransifex.cli"
40+
41+ [dependency-groups ]
42+ dev = [
43+ { include-group = " testing" },
44+ { include-group = " typing" },
3845]
39- optional-dependencies. testing = [
46+ testing = [
4047 " deptry>=0.12" ,
4148 " pytest>=8" ,
4249 " singer-sdk[testing]" ,
4350]
44- optional-dependencies. typing = [
51+ typing = [
4552 " mypy>=1.8" ,
53+ " ty>=0.0.1a16" ,
4654 " types-requests>=2.31" ,
4755]
48- urls.Documentation = " https://github.com/edgarrmondragon/tap-transifex#readme"
49- urls.Homepage = " https://github.com/edgarrmondragon/tap-transifex"
50- urls.Repository = " https://github.com/edgarrmondragon/tap-transifex"
51- scripts."tap-transifex" = " tap_transifex.tap:TapTransifex.cli"
5256
5357[tool .hatch .version ]
5458source = " vcs"
5559
56- [tool .hatch .envs .sync .scripts ]
57- console = " tap-transifex {args} --config ENV"
58- jsonl = " tap-transifex {args} --config ENV > tap-transifex.jsonl"
59-
60- [tool .hatch .envs .test ]
61- features = [ " testing" ]
62- [tool .hatch .envs .test .scripts ]
63- integration = " pytest {args:tests}"
64- dependencies = " deptry ."
65-
66- [tool .hatch .envs .all ]
67- template = " test"
68- [[tool .hatch .envs .all .matrix ]]
69- python = [ " 3.10" , " 3.11" , " 3.12" , " 3.13" ]
70-
71- [tool .hatch .envs .typing ]
72- features = [ " testing" , " typing" ]
73- [tool .hatch .envs .typing .scripts ]
74- check = " mypy --strict {args:tap_transifex tests}"
75-
7660[tool .ruff ]
7761line-length = 88
7862
@@ -100,7 +84,7 @@ lint.pydocstyle.convention = "google"
10084[tool .deptry .package_module_name_map ]
10185mypy = " mypy"
10286pytest = " pytest"
103- tap-transifex = " tap_transifex "
87+ ty = " ty "
10488types-requests = " requests"
10589
10690[tool .deptry .per_rule_ignores ]
@@ -110,9 +94,55 @@ DEP002 = [
11094 " pytest" ,
11195]
11296
97+ [tool .pyproject-fmt ]
98+ max_supported_python = " 3.14"
99+
113100[tool .pytest .ini_options ]
114101addopts = " -vvv"
115102
103+ [tool .tox ]
104+ min_version = " 4.22"
105+ requires = [
106+ " tox~=4.22" ,
107+ " tox-gh~=1.5.0" ,
108+ " tox-uv~=1.17" ,
109+ ]
110+ env_list = [
111+ " dependencies" ,
112+ " typing" ,
113+ " 3.14" ,
114+ " 3.13" ,
115+ " 3.12" ,
116+ " 3.11" ,
117+ " 3.10" ,
118+ ]
119+
120+ [tool .tox .gh .python ]
121+ "3.14" = [ " 3.14" ]
122+ "3.13" = [ " 3.13" , " dependencies" , " typing" ]
123+ "3.12" = [ " 3.12" ]
124+ "3.11" = [ " 3.11" ]
125+ "3.10" = [ " 3.10" ]
126+
127+ [tool .tox .env_run_base ]
128+ pass_env = [ " TAP_TRANSIFEX_*" ]
129+ dependency_groups = [ " testing" ]
130+ commands = [ [ " pytest" , { replace = " posargs" , default = [ " tests" ], extend = true } ] ]
131+
132+ [tool .tox .env .dependencies ]
133+ dependency_groups = [ " testing" ]
134+ commands = [ [ " deptry" , " ." ] ]
135+
136+ [tool .tox .env .sync ]
137+ commands = [ [ " tap-transifex" , { replace = " posargs" , default = [ " --config=ENV" ], extend = true } ] ]
138+
139+ [tool .tox .env .typing ]
140+ dependency_groups = [ " testing" , " typing" ]
141+ commands = [
142+ [ " mypy" , " --strict" , { replace = " posargs" , default = [ " tap_transifex" , " tests" ], extend = true } ],
143+ [ " ty" , " check" , { replace = " posargs" , default = [ " tap_transifex" , " tests" ], extend = true } ],
144+ ]
145+
116146[tool .mypy ]
117147warn_redundant_casts = true
118148warn_return_any = true
0 commit comments