Skip to content

Commit e759044

Browse files
Fokkokevinjqliu
andauthored
mypy: Ignore missing annotations globally (#2704)
Weirdly, this also showed some new issues: ``` mypy.....................................................................Failed - hook id: mypy - exit code: 1 mkdocs/gen_doc_stubs.py:20: error: Unused "type: ignore" comment [unused-ignore] mkdocs/gen_doc_stubs.py:21: error: Unused "type: ignore" comment [unused-ignore] tests/utils/test_manifest.py:51: error: "Callable[[FileIO, str], tuple[ManifestFile, ...]]" has no attribute "cache_clear" [attr-defined] tests/conftest.py:101: error: Unused "type: ignore" comment [unused-ignore] Found 4 errors in 3 files (checked 166 source files) ``` <!-- Thanks for opening a pull request! --> <!-- In the case this PR will resolve an issue, please replace ${GITHUB_ISSUE_ID} below with the actual Github issue id. --> <!-- Closes #${GITHUB_ISSUE_ID} --> # Rationale for this change ## Are these changes tested? ## Are there any user-facing changes? <!-- In the case of user-facing changes, please add the changelog label. --> --------- Co-authored-by: Kevin Liu <[email protected]> Co-authored-by: Kevin Liu <[email protected]>
1 parent 4367098 commit e759044

File tree

5 files changed

+10
-349
lines changed

5 files changed

+10
-349
lines changed

mkdocs/gen_doc_stubs.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717

1818
from pathlib import Path
1919

20-
import griffe # type: ignore
21-
import mkdocs_gen_files # type: ignore
20+
import griffe
21+
import mkdocs_gen_files
2222

2323
nav = mkdocs_gen_files.Nav()
2424

pyiceberg/manifest.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -874,7 +874,11 @@ def __hash__(self) -> int:
874874
return hash(self.manifest_path)
875875

876876

877-
@cached(cache=LRUCache(maxsize=128), key=lambda io, manifest_list: hashkey(manifest_list), lock=threading.RLock())
877+
# Global cache for manifest lists
878+
_manifest_cache: LRUCache[Any, Tuple[ManifestFile, ...]] = LRUCache(maxsize=128)
879+
880+
881+
@cached(cache=_manifest_cache, key=lambda io, manifest_list: hashkey(manifest_list), lock=threading.RLock())
878882
def _manifests(io: FileIO, manifest_list: str) -> Tuple[ManifestFile, ...]:
879883
"""Read and cache manifests from the given manifest list, returning a tuple to prevent modification."""
880884
file = io.new_input(manifest_list)

pyproject.toml

Lines changed: 0 additions & 343 deletions
Original file line numberDiff line numberDiff line change
@@ -119,178 +119,6 @@ mkdocs-material = "9.6.23"
119119
mkdocs-material-extensions = "1.3.1"
120120
mkdocs-section-index = "0.3.10"
121121

122-
[[tool.mypy.overrides]]
123-
module = "pytest_mock.*"
124-
ignore_missing_imports = true
125-
126-
[[tool.mypy.overrides]]
127-
module = "pyarrow.*"
128-
ignore_missing_imports = true
129-
130-
[[tool.mypy.overrides]]
131-
module = "google.*"
132-
ignore_missing_imports = true
133-
134-
[[tool.mypy.overrides]]
135-
module = "pandas.*"
136-
ignore_missing_imports = true
137-
138-
[[tool.mypy.overrides]]
139-
module = "snappy.*"
140-
ignore_missing_imports = true
141-
142-
[[tool.mypy.overrides]]
143-
module = "zstandard.*"
144-
ignore_missing_imports = true
145-
146-
[[tool.mypy.overrides]]
147-
module = "pydantic.*"
148-
ignore_missing_imports = true
149-
150-
[[tool.mypy.overrides]]
151-
module = "pydantic_core.*"
152-
ignore_missing_imports = true
153-
154-
[[tool.mypy.overrides]]
155-
module = "pytest.*"
156-
ignore_missing_imports = true
157-
158-
[[tool.mypy.overrides]]
159-
module = "fastavro.*"
160-
ignore_missing_imports = true
161-
162-
[[tool.mypy.overrides]]
163-
module = "mmh3.*"
164-
ignore_missing_imports = true
165-
166-
[[tool.mypy.overrides]]
167-
module = "hive_metastore.*"
168-
ignore_missing_imports = true
169-
170-
[[tool.mypy.overrides]]
171-
module = "thrift.*"
172-
ignore_missing_imports = true
173-
174-
[[tool.mypy.overrides]]
175-
module = "requests_mock.*"
176-
ignore_missing_imports = true
177-
178-
[[tool.mypy.overrides]]
179-
module = "click.*"
180-
ignore_missing_imports = true
181-
182-
[[tool.mypy.overrides]]
183-
module = "rich.*"
184-
ignore_missing_imports = true
185-
186-
[[tool.mypy.overrides]]
187-
module = "fsspec.*"
188-
ignore_missing_imports = true
189-
190-
[[tool.mypy.overrides]]
191-
module = "s3fs.*"
192-
ignore_missing_imports = true
193-
194-
[[tool.mypy.overrides]]
195-
module = "azure.*"
196-
ignore_missing_imports = true
197-
198-
[[tool.mypy.overrides]]
199-
module = "adlfs.*"
200-
ignore_missing_imports = true
201-
202-
[[tool.mypy.overrides]]
203-
module = "gcsfs.*"
204-
ignore_missing_imports = true
205-
206-
[[tool.mypy.overrides]]
207-
module = "packaging.*"
208-
ignore_missing_imports = true
209-
210-
[[tool.mypy.overrides]]
211-
module = "tests.*"
212-
ignore_missing_imports = true
213-
214-
[[tool.mypy.overrides]]
215-
module = "boto3"
216-
ignore_missing_imports = true
217-
218-
[[tool.mypy.overrides]]
219-
module = "botocore.*"
220-
ignore_missing_imports = true
221-
222-
[[tool.mypy.overrides]]
223-
module = "mypy_boto3_glue.*"
224-
ignore_missing_imports = true
225-
226-
[[tool.mypy.overrides]]
227-
module = "mypy_boto3_dynamodb.*"
228-
ignore_missing_imports = true
229-
230-
[[tool.mypy.overrides]]
231-
module = "moto"
232-
ignore_missing_imports = true
233-
234-
[[tool.mypy.overrides]]
235-
module = "aiobotocore.*"
236-
ignore_missing_imports = true
237-
238-
[[tool.mypy.overrides]]
239-
module = "aiohttp.*"
240-
ignore_missing_imports = true
241-
242-
[[tool.mypy.overrides]]
243-
module = "duckdb.*"
244-
ignore_missing_imports = true
245-
246-
[[tool.mypy.overrides]]
247-
module = "ray.*"
248-
ignore_missing_imports = true
249-
250-
[[tool.mypy.overrides]]
251-
module = "daft.*"
252-
ignore_missing_imports = true
253-
254-
[[tool.mypy.overrides]]
255-
module = "pyparsing.*"
256-
ignore_missing_imports = true
257-
258-
[[tool.mypy.overrides]]
259-
module = "pyspark.*"
260-
ignore_missing_imports = true
261-
262-
[[tool.mypy.overrides]]
263-
module = "strictyaml.*"
264-
ignore_missing_imports = true
265-
266-
[[tool.mypy.overrides]]
267-
module = "sortedcontainers.*"
268-
ignore_missing_imports = true
269-
270-
[[tool.mypy.overrides]]
271-
module = "sqlalchemy.*"
272-
ignore_missing_imports = true
273-
274-
[[tool.mypy.overrides]]
275-
module = "Cython.*"
276-
ignore_missing_imports = true
277-
278-
[[tool.mypy.overrides]]
279-
module = "setuptools.*"
280-
ignore_missing_imports = true
281-
282-
[[tool.mypy.overrides]]
283-
module = "tenacity.*"
284-
ignore_missing_imports = true
285-
286-
[[tool.mypy.overrides]]
287-
module = "pyiceberg_core.*"
288-
ignore_missing_imports = true
289-
290-
[[tool.mypy.overrides]]
291-
module = "google.*"
292-
ignore_missing_imports = true
293-
294122
[tool.poetry.scripts]
295123
pyiceberg = "pyiceberg.cli.console:run"
296124

@@ -362,177 +190,6 @@ warn_unused_ignores = true
362190
disallow_any_generics = true
363191
disallow_untyped_defs = true
364192
implicit_reexport = false
365-
366-
[[tool.mypy.overrides]]
367-
module = "pyarrow.*"
368-
ignore_missing_imports = true
369-
370-
[[tool.mypy.overrides]]
371-
module = "pandas.*"
372-
ignore_missing_imports = true
373-
374-
[[tool.mypy.overrides]]
375-
module = "snappy.*"
376-
ignore_missing_imports = true
377-
378-
[[tool.mypy.overrides]]
379-
module = "zstandard.*"
380-
ignore_missing_imports = true
381-
382-
[[tool.mypy.overrides]]
383-
module = "pydantic.*"
384-
ignore_missing_imports = true
385-
386-
[[tool.mypy.overrides]]
387-
module = "pydantic_core.*"
388-
ignore_missing_imports = true
389-
390-
[[tool.mypy.overrides]]
391-
module = "pytest.*"
392-
ignore_missing_imports = true
393-
394-
[[tool.mypy.overrides]]
395-
module = "fastavro.*"
396-
ignore_missing_imports = true
397-
398-
[[tool.mypy.overrides]]
399-
module = "mmh3.*"
400-
ignore_missing_imports = true
401-
402-
[[tool.mypy.overrides]]
403-
module = "hive_metastore.*"
404-
ignore_missing_imports = true
405-
406-
[[tool.mypy.overrides]]
407-
module = "thrift.*"
408-
ignore_missing_imports = true
409-
410-
[[tool.mypy.overrides]]
411-
module = "requests_mock.*"
412-
ignore_missing_imports = true
413-
414-
[[tool.mypy.overrides]]
415-
module = "click.*"
416-
ignore_missing_imports = true
417-
418-
[[tool.mypy.overrides]]
419-
module = "rich.*"
420-
ignore_missing_imports = true
421-
422-
[[tool.mypy.overrides]]
423-
module = "fsspec.*"
424-
ignore_missing_imports = true
425-
426-
[[tool.mypy.overrides]]
427-
module = "s3fs.*"
428-
ignore_missing_imports = true
429-
430-
[[tool.mypy.overrides]]
431-
module = "azure.*"
432-
ignore_missing_imports = true
433-
434-
[[tool.mypy.overrides]]
435-
module = "adlfs.*"
436-
ignore_missing_imports = true
437-
438-
[[tool.mypy.overrides]]
439-
module = "gcsfs.*"
440-
ignore_missing_imports = true
441-
442-
[[tool.mypy.overrides]]
443-
module = "huggingface_hub.*"
444-
ignore_missing_imports = true
445-
446-
[[tool.mypy.overrides]]
447-
module = "packaging.*"
448-
ignore_missing_imports = true
449-
450-
[[tool.mypy.overrides]]
451-
module = "tests.*"
452-
ignore_missing_imports = true
453-
454-
[[tool.mypy.overrides]]
455-
module = "boto3"
456-
ignore_missing_imports = true
457-
458-
[[tool.mypy.overrides]]
459-
module = "botocore.*"
460-
ignore_missing_imports = true
461-
462-
[[tool.mypy.overrides]]
463-
module = "mypy_boto3_glue.*"
464-
ignore_missing_imports = true
465-
466-
[[tool.mypy.overrides]]
467-
module = "moto"
468-
ignore_missing_imports = true
469-
470-
[[tool.mypy.overrides]]
471-
module = "aiobotocore.*"
472-
ignore_missing_imports = true
473-
474-
[[tool.mypy.overrides]]
475-
module = "aiohttp.*"
476-
ignore_missing_imports = true
477-
478-
[[tool.mypy.overrides]]
479-
module = "duckdb.*"
480-
ignore_missing_imports = true
481-
482-
[[tool.mypy.overrides]]
483-
module = "ray.*"
484-
ignore_missing_imports = true
485-
486-
[[tool.mypy.overrides]]
487-
module = "daft.*"
488-
ignore_missing_imports = true
489-
490-
[[tool.mypy.overrides]]
491-
module = "bodo.*"
492-
ignore_missing_imports = true
493-
494-
[[tool.mypy.overrides]]
495-
module = "pyparsing.*"
496-
ignore_missing_imports = true
497-
498-
[[tool.mypy.overrides]]
499-
module = "pyspark.*"
500-
ignore_missing_imports = true
501-
502-
[[tool.mypy.overrides]]
503-
module = "strictyaml.*"
504-
ignore_missing_imports = true
505-
506-
[[tool.mypy.overrides]]
507-
module = "sortedcontainers.*"
508-
ignore_missing_imports = true
509-
510-
[[tool.mypy.overrides]]
511-
module = "sqlalchemy.*"
512-
ignore_missing_imports = true
513-
514-
[[tool.mypy.overrides]]
515-
module = "Cython.*"
516-
ignore_missing_imports = true
517-
518-
[[tool.mypy.overrides]]
519-
module = "setuptools.*"
520-
ignore_missing_imports = true
521-
522-
[[tool.mypy.overrides]]
523-
module = "tenacity.*"
524-
ignore_missing_imports = true
525-
526-
[[tool.mypy.overrides]]
527-
module = "polars.*"
528-
ignore_missing_imports = true
529-
530-
[[tool.mypy.overrides]]
531-
module = "datafusion.*"
532-
ignore_missing_imports = true
533-
534-
[[tool.mypy.overrides]]
535-
module = "pyroaring.*"
536193
ignore_missing_imports = true
537194

538195
[tool.coverage.run]

tests/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797

9898
if TYPE_CHECKING:
9999
import pyarrow as pa
100-
from moto.server import ThreadedMotoServer # type: ignore
100+
from moto.server import ThreadedMotoServer
101101
from pyspark.sql import SparkSession
102102

103103
from pyiceberg.io.pyarrow import PyArrowFileIO

0 commit comments

Comments
 (0)