|
58 | 58 | build-backend = "hatchling.build" |
59 | 59 |
|
60 | 60 | [project] |
61 | | -dependencies = ["fastapi~=0.109.2", "uvicorn[standard]~=0.25.0", "tomlkit"] |
| 61 | +dependencies = ["fastapi~=0.109.2", |
| 62 | + "uvicorn[standard]~=0.25.0", |
| 63 | + "tomlkit", |
| 64 | + "typing_extensions<4.7; python_version > '3.9'" |
| 65 | +] |
62 | 66 |
|
63 | 67 | [project.optional-dependencies] |
64 | 68 | dev = ["an-optional-lib==1.2.3", "another"] |
|
71 | 75 | fastapi = "^0.110.0" |
72 | 76 | uvicorn = {extras = ["standard"], version = "^0.27.1"} |
73 | 77 | tomlkit = "*" |
| 78 | +typing_extensions = [ |
| 79 | + { version = "<4.14", python = ">=3.8,<3.9" }, |
| 80 | + { version = "*", python = ">=3.9" } |
| 81 | +] |
74 | 82 |
|
75 | 83 | an-optional-lib = {version = "1.2.3", optional = true} |
76 | 84 | another = {optional = true} |
@@ -144,23 +152,36 @@ def test_get_hatch_package_includes_from_default_when_in_both(): |
144 | 152 |
|
145 | 153 |
|
146 | 154 | def test_parse_pep_621_project_dependencies(): |
| 155 | + expected_pep_621 = { |
| 156 | + **expected_dependencies, |
| 157 | + **{"typing_extensions": "<4.7; python_version > '3.9'"}, |
| 158 | + } |
147 | 159 | data = tomlkit.loads(pep_621_toml_deps) |
148 | 160 |
|
149 | 161 | res = toml.parse_project_dependencies(data) |
150 | 162 |
|
151 | | - assert res == expected_dependencies |
| 163 | + assert res == expected_pep_621 |
152 | 164 |
|
153 | 165 |
|
154 | 166 | def test_parse_poetry_project_dependencies(): |
155 | 167 | expected = {**expected_dependencies, **{"python": "^3.10"}} |
| 168 | + extra = { |
| 169 | + "typing_extensions-python>=3.8,<3.9": "<4.14", |
| 170 | + "typing_extensions-python>=3.9": "*", |
| 171 | + } |
| 172 | + |
| 173 | + expected_poetry = {**expected, **extra} |
| 174 | + |
156 | 175 | data = tomlkit.loads(poetry_toml_deps) |
157 | 176 |
|
158 | 177 | res = toml.parse_project_dependencies(data) |
159 | 178 |
|
160 | | - assert res.keys() == expected.keys() |
| 179 | + assert res.keys() == expected_poetry.keys() |
161 | 180 | assert res["fastapi"] == "^0.110.0" |
162 | 181 | assert res["tomlkit"] == "*" |
163 | 182 | assert res["an-optional-lib"] == "1.2.3" |
| 183 | + assert res["typing_extensions-python>=3.8,<3.9"] == "<4.14" |
| 184 | + assert res["typing_extensions-python>=3.9"] == "*" |
164 | 185 |
|
165 | 186 |
|
166 | 187 | def test_collect_hatch_exclude_patterns() -> None: |
|
0 commit comments