Build, Manage and Deploy AI/ML Systems
This report presents the forensic synthetic code analysis of Netflix/metaflow, a Python project with 10,206 GitHub stars. SynthScan v2.0 examined 178,023 lines of code across 930 source files, recording 2922 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 27.9 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 2922 distinct pattern matches across 23 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/core/tests/resume_foreach_inner.py | 0 | resuming from a foreach split should work. check that data changes in all downstream steps after resume. | STRING |
| HIGH | test/core/tests/resume_foreach_join.py | 0 | resuming from a foreach split should work. check that data changes in all downstream steps after resume. | STRING |
| HIGH | test/core/tests/resume_ubf_foreach_join.py | 0 | resuming from a foreach split should work. check that data changes in all downstream steps after resume. | STRING |
| HIGH | test/core/tests/resume_foreach_split.py | 0 | resuming from a foreach split should work. check that data changes in all downstream steps after resume. | STRING |
| HIGH | test/test_config/helloconfig.py | 0 | this is the 'start' step. all flows must have a step named 'start' that is the first step in the flow. | STRING |
| HIGH | test/ux/core/flows/basic/helloproject.py | 0 | this is the 'start' step. all flows must have a step named 'start' that is the first step in the flow. | STRING |
| HIGH | test/ux/core/flows/basic/helloconda.py | 0 | this is the 'start' step. all flows must have a step named 'start' that is the first step in the flow. | STRING |
| HIGH | metaflow/tutorials/00-helloworld/helloworld.py | 0 | this is the 'start' step. all flows must have a step named 'start' that is the first step in the flow. | STRING |
| HIGH | test/test_config/helloconfig.py | 0 | this is the 'end' step. all flows must have an 'end' step, which is the last step in the flow. | STRING |
| HIGH | test/ux/core/flows/basic/helloproject.py | 0 | this is the 'end' step. all flows must have an 'end' step, which is the last step in the flow. | STRING |
| HIGH | test/ux/core/flows/basic/helloconda.py | 0 | this is the 'end' step. all flows must have an 'end' step, which is the last step in the flow. | STRING |
| HIGH | metaflow/tutorials/00-helloworld/helloworld.py | 0 | this is the 'end' step. all flows must have an 'end' step, which is the last step in the flow. | STRING |
| HIGH | metaflow/metaflow_environment.py | 0 | called to add custom files needed by this step mutator. this hook will be called in the `metaflowpackage` class where me | STRING |
| HIGH | metaflow/decorators.py | 0 | called to add custom files needed by this step mutator. this hook will be called in the `metaflowpackage` class where me | STRING |
| HIGH | metaflow/user_decorators/user_flow_decorator.py | 0 | called to add custom files needed by this step mutator. this hook will be called in the `metaflowpackage` class where me | STRING |
| HIGH | metaflow/user_decorators/user_step_decorator.py | 0 | called to add custom files needed by this step mutator. this hook will be called in the `metaflowpackage` class where me | STRING |
| HIGH | metaflow/_vendor/zipp.py | 0 | given a path with elements separated by posixpath.sep, generate all parents of that path. >>> list(_parents('b/d')) ['b' | STRING |
| HIGH | metaflow/_vendor/v3_7/zipp.py | 0 | given a path with elements separated by posixpath.sep, generate all parents of that path. >>> list(_parents('b/d')) ['b' | STRING |
| HIGH | metaflow/_vendor/v3_6/zipp.py | 0 | given a path with elements separated by posixpath.sep, generate all parents of that path. >>> list(_parents('b/d')) ['b' | STRING |
| HIGH | metaflow/_vendor/zipp.py | 0 | given a path with elements separated by posixpath.sep, generate all elements of that path >>> list(_ancestry('b/d')) ['b | STRING |
| HIGH | metaflow/_vendor/v3_7/zipp.py | 0 | given a path with elements separated by posixpath.sep, generate all elements of that path >>> list(_ancestry('b/d')) ['b | STRING |
| HIGH | metaflow/_vendor/v3_6/zipp.py | 0 | given a path with elements separated by posixpath.sep, generate all elements of that path >>> list(_ancestry('b/d')) ['b | STRING |
| HIGH | metaflow/_vendor/zipp.py | 0 | return items in minuend not in subtrahend, retaining order with o(1) lookup. | STRING |
| HIGH | metaflow/_vendor/v3_7/zipp.py | 0 | return items in minuend not in subtrahend, retaining order with o(1) lookup. | STRING |
| HIGH | metaflow/_vendor/v3_6/zipp.py | 0 | return items in minuend not in subtrahend, retaining order with o(1) lookup. | STRING |
| HIGH | metaflow/_vendor/zipp.py | 0 | a zipfile subclass that ensures that implied directories are always included in the namelist. | STRING |
| HIGH | metaflow/_vendor/v3_7/zipp.py | 0 | a zipfile subclass that ensures that implied directories are always included in the namelist. | STRING |
| HIGH | metaflow/_vendor/v3_6/zipp.py | 0 | a zipfile subclass that ensures that implied directories are always included in the namelist. | STRING |
| HIGH | metaflow/_vendor/zipp.py | 0 | if the name represents a directory, return that name as a directory (with the trailing slash). | STRING |
| HIGH | metaflow/_vendor/v3_7/zipp.py | 0 | if the name represents a directory, return that name as a directory (with the trailing slash). | STRING |
| HIGH | metaflow/_vendor/v3_6/zipp.py | 0 | if the name represents a directory, return that name as a directory (with the trailing slash). | STRING |
| HIGH | metaflow/_vendor/zipp.py | 0 | given a source (filename or zipfile), return an appropriate completedirs subclass. | STRING |
| HIGH | metaflow/_vendor/v3_7/zipp.py | 0 | given a source (filename or zipfile), return an appropriate completedirs subclass. | STRING |
| HIGH | metaflow/_vendor/v3_6/zipp.py | 0 | given a source (filename or zipfile), return an appropriate completedirs subclass. | STRING |
| HIGH | metaflow/_vendor/zipp.py | 0 | zipfile subclass to ensure implicit dirs exist and are resolved rapidly. | STRING |
| HIGH | metaflow/_vendor/v3_7/zipp.py | 0 | zipfile subclass to ensure implicit dirs exist and are resolved rapidly. | STRING |
| HIGH | metaflow/_vendor/v3_6/zipp.py | 0 | zipfile subclass to ensure implicit dirs exist and are resolved rapidly. | STRING |
| HIGH | metaflow/_vendor/zipp.py | 0 | for path-like objects, convert to a filename for compatibility on python 3.6.1 and earlier. | STRING |
| HIGH | metaflow/_vendor/v3_7/zipp.py | 0 | for path-like objects, convert to a filename for compatibility on python 3.6.1 and earlier. | STRING |
| HIGH | metaflow/_vendor/v3_6/zipp.py | 0 | for path-like objects, convert to a filename for compatibility on python 3.6.1 and earlier. | STRING |
| HIGH | metaflow/_vendor/zipp.py | 0 | a pathlib-compatible interface for zip files. consider a zip file with this structure:: . ├── a.txt └── b ├── c.txt └── | STRING |
| HIGH | metaflow/_vendor/v3_7/zipp.py | 0 | a pathlib-compatible interface for zip files. consider a zip file with this structure:: . ├── a.txt └── b ├── c.txt └── | STRING |
| HIGH | metaflow/_vendor/v3_6/zipp.py | 0 | a pathlib-compatible interface for zip files. consider a zip file with this structure:: . ├── a.txt └── b ├── c.txt └── | STRING |
| HIGH | metaflow/_vendor/zipp.py | 0 | construct a path from a zipfile or filename. note: when the source is an existing zipfile object, its type (__class__) w | STRING |
| HIGH | metaflow/_vendor/v3_7/zipp.py | 0 | construct a path from a zipfile or filename. note: when the source is an existing zipfile object, its type (__class__) w | STRING |
| HIGH | metaflow/_vendor/v3_6/zipp.py | 0 | construct a path from a zipfile or filename. note: when the source is an existing zipfile object, its type (__class__) w | STRING |
| HIGH | metaflow/_vendor/zipp.py | 0 | open this entry as text or binary following the semantics of ``pathlib.path.open()`` by passing arguments through to io. | STRING |
| HIGH | metaflow/_vendor/v3_7/zipp.py | 0 | open this entry as text or binary following the semantics of ``pathlib.path.open()`` by passing arguments through to io. | STRING |
| HIGH | metaflow/_vendor/v3_6/zipp.py | 0 | open this entry as text or binary following the semantics of ``pathlib.path.open()`` by passing arguments through to io. | STRING |
| HIGH | metaflow/_vendor/typing_extensions.py | 0 | this decorator can be used to indicate to type checkers that the decorated method cannot be overridden, and decorated cl | STRING |
| HIGH | metaflow/_vendor/v3_7/typing_extensions.py | 0 | this decorator can be used to indicate to type checkers that the decorated method cannot be overridden, and decorated cl | STRING |
| HIGH | metaflow/_vendor/v3_6/typing_extensions.py | 0 | this decorator can be used to indicate to type checkers that the decorated method cannot be overridden, and decorated cl | STRING |
| HIGH | metaflow/_vendor/typing_extensions.py | 0 | a type that can be used to indicate to type checkers that the corresponding value has a value literally equivalent to th | STRING |
| HIGH | metaflow/_vendor/v3_7/typing_extensions.py | 0 | a type that can be used to indicate to type checkers that the corresponding value has a value literally equivalent to th | STRING |
| HIGH | metaflow/_vendor/v3_6/typing_extensions.py | 0 | a type that can be used to indicate to type checkers that the corresponding value has a value literally equivalent to th | STRING |
| HIGH | metaflow/_vendor/typing_extensions.py | 0 | check if an annotation is a typeddict class for example:: class film(typeddict): title: str year: int is_typeddict(film) | STRING |
| HIGH | metaflow/_vendor/v3_7/typing_extensions.py | 0 | check if an annotation is a typeddict class for example:: class film(typeddict): title: str year: int is_typeddict(film) | STRING |
| HIGH | metaflow/_vendor/v3_6/typing_extensions.py | 0 | check if an annotation is a typeddict class for example:: class film(typeddict): title: str year: int is_typeddict(film) | STRING |
| HIGH | metaflow/_vendor/typing_extensions.py | 0 | strips annotated, required and notrequired from a given type. | STRING |
| HIGH | metaflow/_vendor/v3_7/typing_extensions.py | 0 | strips annotated, required and notrequired from a given type. | STRING |
| 256 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CONTRIBUTING.md | 192 | def test_symlink_traversal_handles_circular_references(): | CODE |
| LOW⚡ | test/cmd/develop/test_stub_generator.py | 125 | def test_get_element_name_forward_references(self): | CODE |
| LOW⚡ | test/cmd/develop/test_stub_generator.py | 131 | def test_get_element_name_string_annotations(self): | CODE |
| LOW⚡ | test/cmd/develop/test_stub_generator.py | 136 | def test_get_element_name_self_reference(self): | CODE |
| LOW⚡ | test/cmd/develop/test_stub_generator.py | 142 | def test_function_stub_generation(self): | CODE |
| LOW⚡ | test/cmd/develop/test_stub_generator.py | 371 | def test_get_element_name_error_handling_none_module(self): | CODE |
| LOW⚡ | test/cmd/develop/test_stub_generator.py | 378 | def test_get_element_name_error_handling_eval_failure(self): | CODE |
| LOW⚡ | test/cmd/develop/test_stub_generator.py | 386 | def test_get_element_name_generic_origin_without_name(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 46 | def test_get_element_name_basic_types(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 59 | def test_get_element_name_class_objects(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 70 | def test_get_element_name_generic_alias_with_class_objects(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 87 | def test_get_element_name_nested_generics(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 105 | def test_get_element_name_callable_with_class_args(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 159 | def test_class_stub_generation(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 178 | def test_exploit_annotation_method(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 198 | def test_imports_and_typing_imports(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 208 | def test_safe_module_aliasing(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 228 | def test_get_element_name_union_types(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 244 | def test_get_element_name_tuple_types(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 259 | def test_get_element_name_tuple_with_ellipsis(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 274 | def test_get_element_name_callable_with_ellipsis(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 289 | def test_get_element_name_newtype(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 299 | def test_get_element_name_classvar(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 316 | def test_get_element_name_final(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 330 | def test_get_element_name_literal(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 343 | def test_get_element_name_deeply_nested(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 403 | def test_get_element_name_builtin_collections(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 423 | def test_get_element_name_type_with_special_chars(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 436 | def test_get_element_name_nested_classes(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 451 | def test_generator_state_isolation(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 466 | def test_get_element_name_nonetype_handling(self): | CODE |
| LOW | test/cmd/develop/test_stub_generator.py | 489 | def test_class_objects_in_generic_types_no_leakage(): | CODE |
| LOW | test/cmd/diff/test_metaflow_diff.py | 20 | def test_extract_code_package(self, mock_run): | CODE |
| LOW | test/cmd/diff/test_metaflow_diff.py | 36 | def test_perform_diff_output_false(self, mock_isatty, mock_run, use_tty): | CODE |
| LOW | test/cmd/diff/test_metaflow_diff.py | 85 | def test_perform_diff_output_true(self, mock_run): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 14 | def test_serializer_record_default_fields(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 27 | def test_serializer_record_as_dict(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 55 | def test_store_separates_all_vs_active(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 90 | def test_bootstrap_activates_dependency_free_serializer(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 174 | def test_bootstrap_missing_module_parks_entry(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 195 | def test_bootstrap_missing_class_in_module_broken(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 215 | def test_bootstrap_setup_imports_missing_dep_parks_entry(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 257 | def test_bootstrap_setup_imports_other_exception_broken(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 299 | def test_bootstrap_disabled_toggle(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 338 | def test_retry_activates_pending_record_on_module_import(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 402 | def test_retry_hits_loop_guard_after_repeated_failure(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 458 | def test_retry_fires_via_real_import_hook(tmp_path, monkeypatch): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 526 | def test_bootstrap_with_no_extensions_still_runs_core(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 554 | def test_bootstrap_stamps_core_source_on_record(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 576 | def test_bootstrap_entries_accepts_source_override(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 624 | def test_bootstrap_applies_disabled_toggle(monkeypatch): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 654 | def test_list_serializer_status_returns_dicts(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 700 | def test_reset_for_tests_clears_registry_state(): | CODE |
| LOW | test/unit/test_serializer_lifecycle.py | 134 | def test_bootstrap_rejects_name_type_mismatch(): | STRING |
| LOW | test/unit/test_sourceless_dag_node.py | 28 | def _make_dynamic_single_step_flow(): | CODE |
| LOW | test/unit/test_sourceless_dag_node.py | 41 | def test_dynamic_single_step_without_inspectable_source(): | CODE |
| LOW | test/unit/test_compute_resource_attributes.py | 8 | def test_compute_resource_attributes(): | CODE |
| LOW | test/unit/test_compute_resource_attributes.py | 50 | def test_compute_resource_attributes_string(): | CODE |
| LOW | test/unit/test_content_addressed_store.py | 67 | def test_load_blobs_error_message_uses_current_path_key( | CODE |
| LOW | test/unit/test_to_pod.py | 29 | def test_to_pod_list_set_tuple(): | CODE |
| 706 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | test/unit/test_graph_structure.py | 194 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 196 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 206 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 208 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 259 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 261 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 432 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 434 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 506 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 508 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 19 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 21 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 124 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 126 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 166 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 168 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 312 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 314 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 336 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 338 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 364 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 366 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 542 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 544 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 12 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 14 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 23 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 25 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 34 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 36 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 96 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 98 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 123 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 125 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 173 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 175 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 187 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 189 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 207 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 209 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 230 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 232 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 338 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 340 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 402 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 404 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 415 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_system_context.py | 417 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_add_to_package.py | 79 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_add_to_package.py | 81 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_add_to_package.py | 269 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_add_to_package.py | 271 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_add_to_package.py | 376 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_add_to_package.py | 378 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_add_to_package.py | 23 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_add_to_package.py | 25 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_serializer_integration.py | 173 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_serializer_integration.py | 175 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_serializer_integration.py | 236 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_serializer_integration.py | 238 | # --------------------------------------------------------------------------- | COMMENT |
| 128 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/cmd/diff/test_metaflow_diff.py | 7 | CODE | |
| LOW | test/cmd/diff/test_metaflow_diff.py | 7 | CODE | |
| LOW | test/unit/test_serializer_lifecycle.py | 6 | CODE | |
| LOW | test/unit/test_serializer_lifecycle.py | 529 | CODE | |
| LOW | test/unit/test_serializer_lifecycle.py | 505 | CODE | |
| LOW | test/unit/conftest.py | 3 | CODE | |
| LOW | test/unit/test_graph_structure.py | 15 | CODE | |
| LOW | test/unit/test_system_context.py | 3 | CODE | |
| LOW | test/unit/test_system_context.py | 3 | CODE | |
| LOW | test/unit/test_add_to_package.py | 10 | CODE | |
| LOW | test/unit/test_add_to_package.py | 12 | CODE | |
| LOW | test/unit/test_serializer_integration.py | 13 | CODE | |
| LOW | test/unit/test_serializer_integration.py | 14 | CODE | |
| LOW | test/unit/test_pickle_serializer.py | 1 | CODE | |
| LOW | test/unit/test_s3_empty_input.py | 19 | CODE | |
| LOW | test/unit/spin/test_spin.py | 4 | CODE | |
| LOW | test/unit/spin/flows/complex_dag_flow.py | 1 | CODE | |
| LOW | test/unit/spin/flows/complex_dag_flow.py | 1 | CODE | |
| LOW | test/unit/spin/flows/complex_dag_flow.py | 1 | CODE | |
| LOW | test/unit/configs/test_config_plain.py | 10 | CODE | |
| LOW | test/unit/configs/test_config_naming.py | 11 | CODE | |
| LOW | test/parallel/pytorch_parallel_test_flow.py | 1 | CODE | |
| LOW | test/parallel/parallel_test_flow.py | 1 | CODE | |
| LOW | test/core/run_tests.py | 1 | CODE | |
| LOW | test/core/run_tests.py | 22 | CODE | |
| LOW | …flow_extensions/test_org/plugins/frameworks/pytorch.py | 1 | CODE | |
| LOW | test/core/tests/card_timeout.py | 1 | CODE | |
| LOW | test/core/tests/card_extension_test.py | 1 | CODE | |
| LOW | test/core/tests/foreach_in_switch.py | 1 | CODE | |
| LOW | test/core/tests/timeout_decorator.py | 1 | CODE | |
| LOW | test/core/tests/card_simple.py | 1 | CODE | |
| LOW | test/core/tests/large_artifact.py | 1 | CODE | |
| LOW | test/core/tests/dynamic_parameters.py | 1 | CODE | |
| LOW | test/core/tests/tag_catch.py | 1 | CODE | |
| LOW | test/core/tests/resume_foreach_inner.py | 1 | CODE | |
| LOW | test/core/tests/flow_options.py | 1 | CODE | |
| LOW | test/core/tests/project_branch.py | 1 | CODE | |
| LOW | test/core/tests/project_branch.py | 1 | CODE | |
| LOW | test/core/tests/card_error.py | 2 | CODE | |
| LOW | test/core/tests/resume_originpath.py | 1 | CODE | |
| LOW | test/core/tests/card_id_append.py | 1 | CODE | |
| LOW | test/core/tests/card_default_editable_with_id.py | 1 | CODE | |
| LOW | test/core/tests/wide_foreach.py | 1 | CODE | |
| LOW | test/core/tests/catch_retry.py | 1 | CODE | |
| LOW | test/core/tests/catch_retry.py | 21 | CODE | |
| LOW | test/core/tests/catch_retry.py | 35 | CODE | |
| LOW | test/core/tests/catch_retry.py | 45 | CODE | |
| LOW | test/core/tests/run_id_file.py | 1 | CODE | |
| LOW | test/core/tests/basic_unbounded_foreach.py | 1 | CODE | |
| LOW | test/core/tests/secrets_decorator.py | 1 | CODE | |
| LOW | test/core/tests/constants.py | 1 | CODE | |
| LOW | test/core/tests/merge_artifacts_propagation.py | 1 | CODE | |
| LOW | test/core/tests/merge_artifacts.py | 1 | CODE | |
| LOW | test/core/tests/resume_foreach_join.py | 1 | CODE | |
| LOW | test/core/tests/current_singleton.py | 1 | CODE | |
| LOW | test/core/tests/large_mflog.py | 1 | CODE | |
| LOW | test/core/tests/card_default_editable.py | 1 | CODE | |
| LOW | test/core/tests/basic_log.py | 1 | CODE | |
| LOW | test/core/tests/basic_artifact.py | 1 | CODE | |
| LOW | test/core/tests/basic_artifact.py | 28 | CODE | |
| 514 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/unit/test_add_to_package.py | 325 | CODE | |
| LOW | test/core/run_tests.py | 42 | CODE | |
| LOW | test/core/run_tests.py | 96 | CODE | |
| LOW | test/core/run_tests.py | 500 | CODE | |
| LOW | test/core/run_tests.py | 107 | CODE | |
| LOW | test/core/test_core_pytest.py | 24 | CODE | |
| LOW | test/core/tests/timeout_decorator.py | 34 | CODE | |
| LOW | test/core/tests/tag_catch.py | 74 | CODE | |
| LOW | test/core/tests/card_default_editable_with_id.py | 46 | CODE | |
| LOW | test/core/tests/catch_retry.py | 72 | CODE | |
| LOW | test/core/tests/large_mflog.py | 67 | CODE | |
| LOW | test/core/tests/card_default_editable.py | 80 | CODE | |
| LOW | test/core/tests/resume_succeeded_step.py | 47 | CODE | |
| LOW | test/core/tests/basic_tags.py | 32 | CODE | |
| LOW | test/core/tests/resume_end_step.py | 39 | CODE | |
| LOW | test/core/tests/card_multiple.py | 61 | CODE | |
| LOW | test/core/metaflow_test/formatter.py | 97 | CODE | |
| LOW | test/core/metaflow_test/metadata_check.py | 53 | CODE | |
| LOW | test/core/metaflow_test/cli_check.py | 39 | CODE | |
| LOW | test/plugins/conda/test_conda_environment_unit.py | 16 | CODE | |
| LOW | test/ux/conftest.py | 192 | CODE | |
| LOW | test/ux/core/test_sfn_compilation.py | 123 | CODE | |
| LOW | test/ux/core/test_sfn_compilation.py | 134 | CODE | |
| LOW | test/ux/core/test_airflow_compilation.py | 82 | CODE | |
| LOW | test/ux/core/flows/config/mutable_flow.py | 28 | CODE | |
| LOW | test/data/s3/conftest.py | 28 | CODE | |
| LOW | test/data/s3/s3_data.py | 218 | CODE | |
| LOW | test/data/s3/s3_data.py | 307 | CODE | |
| LOW | test/data/s3/s3_data.py | 361 | CODE | |
| LOW | test/data/s3/s3_data.py | 455 | CODE | |
| LOW | test/data/s3/s3_data.py | 501 | CODE | |
| LOW | test/data/s3/s3_data.py | 522 | CODE | |
| LOW | test/data/s3/test_s3.py | 44 | CODE | |
| LOW | test/data/s3/test_s3.py | 437 | CODE | |
| LOW | test/data/s3/test_s3.py | 523 | CODE | |
| LOW | test/data/s3/test_s3.py | 553 | CODE | |
| LOW | test/data/s3/test_s3.py | 703 | CODE | |
| LOW | metaflow/task.py | 67 | CODE | |
| LOW | metaflow/task.py | 317 | CODE | |
| LOW | metaflow/task.py | 570 | CODE | |
| LOW | metaflow/vendor.py | 66 | CODE | |
| LOW | metaflow/R.py | 26 | CODE | |
| LOW | metaflow/includefile.py | 442 | CODE | |
| LOW | metaflow/includefile.py | 521 | CODE | |
| LOW | metaflow/multicore_utils.py | 48 | CODE | |
| LOW | metaflow/util.py | 182 | CODE | |
| LOW | metaflow/util.py | 415 | CODE | |
| LOW | metaflow/util.py | 460 | CODE | |
| LOW | metaflow/util.py | 630 | CODE | |
| LOW | metaflow/util.py | 636 | CODE | |
| LOW | metaflow/events.py | 165 | CODE | |
| LOW | metaflow/graph.py | 11 | CODE | |
| LOW | metaflow/graph.py | 171 | CODE | |
| LOW | metaflow/graph.py | 221 | CODE | |
| LOW | metaflow/graph.py | 432 | CODE | |
| LOW | metaflow/graph.py | 486 | CODE | |
| LOW | metaflow/graph.py | 591 | CODE | |
| LOW | metaflow/graph.py | 487 | CODE | |
| LOW | metaflow/graph.py | 595 | CODE | |
| LOW | metaflow/graph.py | 648 | CODE | |
| 355 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/test_included_modules/my_decorators.py | 39 | except Exception as e: | CODE |
| MEDIUM | test/test_included_modules/my_decorators.py | 40 | print(f"Error in step {step_name}: {e}") | CODE |
| LOW | test/unit/test_aws_util.py | 36 | except Exception as e: | CODE |
| MEDIUM | test/unit/localbatch/test_localbatch.py | 221 | def _require_docker(self): | CODE |
| MEDIUM | test/unit/localbatch/test_localbatch.py | 352 | def _require_docker(self): | CODE |
| LOW⚡ | test/unit/localbatch/test_localbatch.py | 226 | except Exception: | CODE |
| LOW | test/unit/localbatch/test_localbatch.py | 290 | except Exception: | CODE |
| LOW | test/unit/localbatch/test_localbatch.py | 357 | except Exception: | CODE |
| LOW⚡ | test/unit/localbatch/conftest.py | 53 | except Exception: | CODE |
| LOW | test/unit/localbatch/conftest.py | 105 | except Exception: | CODE |
| MEDIUM | test/unit/localbatch/conftest.py | 38 | def _localbatch_available(): | CODE |
| LOW | test/core/conftest.py | 52 | except Exception as e: | CODE |
| LOW | test/core/run_tests.py | 358 | except Exception: | CODE |
| LOW | test/core/tests/runtime_dag.py | 121 | except Exception as e: | CODE |
| LOW | test/core/tests/runtime_dag.py | 176 | except Exception as e: | CODE |
| LOW | test/core/metaflow_test/__init__.py | 148 | except Exception as ex: | CODE |
| MEDIUM | test/core/metaflow_test/__init__.py | 143 | def assert_exception(func, exception): | CODE |
| LOW | test/plugins/conda/test_conda_environment_unit.py | 32 | except Exception as e: | CODE |
| MEDIUM | test/plugins/conda/test_conda_environment_unit.py | 16 | def _write_manifest_worker(manifest_path, thread_id, writes_per_thread, errors, | CODE |
| LOW | test/ux/conftest.py | 205 | except Exception: | CODE |
| LOW | test/ux/core/test_utils.py | 46 | except Exception: | CODE |
| LOW | test/ux/core/test_sfn_compilation.py | 110 | except Exception as e: | CODE |
| LOW | test/ux/core/test_airflow_compilation.py | 74 | except Exception: | CODE |
| LOW | test/ux/core/test_resume.py | 109 | except Exception as e: | CODE |
| LOW | test/ux/core/test_resume.py | 158 | except Exception as e: | CODE |
| LOW | test/env_escape/example.py | 209 | except Exception as e: | CODE |
| LOW | test/env_escape/example.py | 220 | except Exception as e: | CODE |
| LOW | test/env_escape/example.py | 231 | except Exception as e: | CODE |
| LOW | test/env_escape/example.py | 242 | except Exception as e: | CODE |
| LOW | metaflow/task.py | 119 | except Exception as ex: | CODE |
| LOW | metaflow/task.py | 127 | except Exception as ex: | CODE |
| LOW | metaflow/task.py | 955 | except Exception as ex: | CODE |
| LOW | metaflow/task.py | 1003 | except Exception as ex: | CODE |
| LOW | metaflow/R.py | 144 | except Exception as e: | CODE |
| LOW | metaflow/includefile.py | 355 | except Exception as e: | CODE |
| LOW | metaflow/util.py | 625 | except Exception as e: | CODE |
| LOW | metaflow/__init__.py | 83 | except Exception as e: | CODE |
| MEDIUM | metaflow/runtime.py | 598 | def clone_task( | CODE |
| MEDIUM | metaflow/runtime.py | 997 | def _run_exit_hooks(self): | CODE |
| LOW | metaflow/runtime.py | 141 | except Exception: | CODE |
| LOW | metaflow/runtime.py | 304 | except Exception as ex: | CODE |
| LOW | metaflow/runtime.py | 540 | except Exception: | CODE |
| LOW | metaflow/runtime.py | 652 | except Exception as e: | CODE |
| LOW | metaflow/runtime.py | 959 | except Exception as ex: | CODE |
| LOW | metaflow/runtime.py | 1032 | except Exception as e: | CODE |
| LOW | metaflow/runtime.py | 1043 | except Exception as ex: | CODE |
| LOW | metaflow/flowspec.py | 1123 | except Exception as e: | CODE |
| LOW | metaflow/cli.py | 751 | except Exception as x: | CODE |
| LOW | metaflow/pylint_wrapper.py | 48 | except Exception as e: | CODE |
| LOW | metaflow/parameters.py | 272 | except Exception as e: | CODE |
| MEDIUM | metaflow/parameters.py | 269 | def __call__(self, return_str=False): | CODE |
| LOW | metaflow/cmd/make_wrapper.py | 58 | except Exception: | CODE |
| LOW | metaflow/cmd/code/__init__.py | 32 | except Exception as e: | CODE |
| LOW | metaflow/tracing/tracing_modules.py | 98 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | metaflow/tracing/tracing_modules.py | 114 | except Exception: | CODE |
| MEDIUM | metaflow/tracing/tracing_modules.py | 111 | def get_trace_id() -> str: | CODE |
| LOW | metaflow/mflog/__init__.py | 124 | except Exception as ex: | CODE |
| MEDIUM | metaflow/mflog/__init__.py | 114 | def _available_logs(tail, stream, echo, should_persist=False): | CODE |
| LOW | metaflow/_vendor/typing_extensions.py | 762 | except Exception as e: | CODE |
| LOW | metaflow/_vendor/click/_winconsole.py | 211 | except Exception: | CODE |
| 170 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/unit/test_pypi_parsers.py | 21 | # use `rye lock` or `rye sync` to update this lockfile | COMMENT |
| LOW | test/core/tests/large_mflog.py | 121 | # GitHub CI runner is constrained on resources causing | COMMENT |
| LOW | test/ux/ux_test_config.yaml | 1 | ###################################### | COMMENT |
| LOW | R/R/utils.R | 61 | return(r_obj) | COMMENT |
| LOW | R/R/utils.R | 81 | #' @param self the metaflow self object for each step function | COMMENT |
| LOW | R/R/utils.R | 101 | #' \preformatted{ | COMMENT |
| LOW | R/R/utils.R | 141 | COMMENT | |
| LOW | R/R/utils.R | 201 | x <- escape_bool(x) | COMMENT |
| LOW | R/R/decorators.R | 1 | #' Metaflow Decorator. | COMMENT |
| LOW | R/R/decorators.R | 41 | x | COMMENT |
| LOW | R/R/decorators.R | 61 | #' #> c("@batch(cpu=4)", "\n", "@retry", "\n") | COMMENT |
| LOW | R/R/task_client.R | 1 | #' task_client | COMMENT |
| LOW | R/R/parameter.R | 1 | #' Assign parameter to the flow | COMMENT |
| LOW | R/R/install.R | 1 | #' Install Metaflow Python package | COMMENT |
| LOW | R/R/install.R | 101 | ) | COMMENT |
| LOW | R/R/step_client.R | 1 | #' step_client | COMMENT |
| LOW | R/R/step.R | 1 | #' Assign a step to the flow | COMMENT |
| LOW | R/R/decorators-aws.R | 1 | #' Decorator that configures resources allocated to a step | COMMENT |
| LOW | R/R/decorators-aws.R | 21 | #' \href{https://hub.docker.com/r/rocker/ml}{Rocker Docker image} will be | COMMENT |
| LOW | R/R/decorators-aws.R | 41 | #' step. A swappiness value of `0` causes swapping not to happen unless | COMMENT |
| LOW | R/R/decorators-aws.R | 61 | #' message( | COMMENT |
| LOW | R/R/imports.R | 1 | #' Pipe operator | COMMENT |
| LOW | R/R/decorators-environment.R | 1 | #' Decorator that sets environment variables during step execution | COMMENT |
| LOW | R/R/metadata.R | 1 | #' Switch Metadata provider | COMMENT |
| LOW | R/R/metadata.R | 21 | #' @return String type. Information about the Metadata provider currently selected. | COMMENT |
| LOW | R/R/namespace.R | 1 | #' Switch to a namespace specified by the given tag. | COMMENT |
| LOW | R/R/flow_client.R | 1 | #' flow_client | COMMENT |
| LOW | R/R/flow_client.R | 21 | #' f$run(f$latest_run) | COMMENT |
| LOW | R/R/decorators-errors.R | 1 | #' Decorator that configures a step to retry upon failure | COMMENT |
| LOW | R/R/decorators-errors.R | 21 | #' @examples \dontrun{ | COMMENT |
| LOW | R/R/decorators-errors.R | 41 | #' next_step="end") %>% | COMMENT |
| LOW | R/R/decorators-errors.R | 61 | #' See \url{https://docs.metaflow.org/v/r/metaflow/failures#catching-exceptions-with-the-catch-decorator} | COMMENT |
| LOW | R/R/decorators-errors.R | 81 | #' "Error is : ", self$start_failed | COMMENT |
| LOW | R/R/metaflow_client.R | 1 | #' Instantiate Metaflow flow/run/step/task client | COMMENT |
| LOW | R/R/metaflow_client.R | 21 | #' s <- client$step(r, step_id) | COMMENT |
| LOW | R/R/metaflow_client.R | 41 | #' Create a metaflow RunClient R6 object from a FlowClient R6 object and run_id | COMMENT |
| LOW | R/R/metaflow_client.R | 61 | #' @param step_client step client | COMMENT |
| LOW | R/R/package.R | 1 | #' @description R binding for Metaflow. Metaflow is a human-friendly Python/R library | COMMENT |
| LOW | R/R/run.R | 1 | #' Run metaflow | COMMENT |
| LOW | R/R/run_client.R | 1 | #' run_client | COMMENT |
| LOW | R/R/run_client.R | 21 | #' r$finished_at | COMMENT |
| LOW | R/inst/tutorials/01-playlist/playlist.R | 1 | # A flow to help you build your favorite movie playlist. | COMMENT |
| LOW | devtools/ci/forward-bridge-ports.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .github/workflows/codeql.yml | 1 | # For most projects, this workflow file will not need changing; you simply need | COMMENT |
| LOW | .github/workflows/ux-tests.yml | 1 | name: Tests | COMMENT |
| LOW | metaflow/task.py | 81 | # If we have wrappers w1, w2 and w3, we need to execute | COMMENT |
| LOW | metaflow/task.py | 421 | # We track the iteration "stack" for loops. At this time, we | COMMENT |
| LOW | metaflow/cli_args.py | 1 | # This class provides a global singleton `cli_args` which stores the `top` and | COMMENT |
| LOW | metaflow/includefile.py | 101 | def __init__(self, is_text, encoding): | COMMENT |
| LOW | metaflow/includefile.py | 121 | # - Scenario B: A path. The path can either be: | COMMENT |
| LOW | metaflow/includefile.py | 161 | if prefix_pos > 0: | COMMENT |
| LOW | metaflow/includefile.py | 321 | # second case, we can just return the string as the FilePath.convert method | COMMENT |
| LOW | metaflow/multicore_utils.py | 21 | COMMENT | |
| LOW | metaflow/util.py | 641 | if os.path.islink(path): | COMMENT |
| LOW | metaflow/graph.py | 21 | # This is the second line | COMMENT |
| LOW | metaflow/graph.py | 61 | if hasattr(ast, "Str") and isinstance(node, ast.Str): | COMMENT |
| LOW | metaflow/graph.py | 81 | # callers that don't (FunctionSpec-style synthesized single steps) supply | COMMENT |
| LOW | metaflow/metaflow_config.py | 221 | AWS_SECRETS_MANAGER_DEFAULT_REGION = from_conf("AWS_SECRETS_MANAGER_DEFAULT_REGION") | COMMENT |
| LOW | metaflow/metaflow_config.py | 301 | # Controls whether to include foreach stack information in metadata. | COMMENT |
| LOW | metaflow/metaflow_config.py | 341 | # AWS Batch configuration | COMMENT |
| 118 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/cmd/develop/test_stub_generator.py | 72 | # Create a generic alias with class objects as arguments | COMMENT |
| MEDIUM | test/cmd/develop/test_stub_generator.py | 89 | # Create a complex nested type: Dict[str, List[Optional[TestClass]]] | COMMENT |
| MEDIUM | test/cmd/develop/test_stub_generator.py | 425 | # Create a class with special characters | COMMENT |
| MEDIUM | test/cmd/develop/test_stub_generator.py | 495 | # Create the exact problematic type from the original issue | COMMENT |
| MEDIUM | test/unit/spin/test_spin.py | 56 | # Create a temporary artifacts file with dynamic data | COMMENT |
| MEDIUM | test/unit/spin/artifacts/complex_dag_step_d.py | 1 | # This file is kept for backwards compatibility but should not be used directly | COMMENT |
| MEDIUM | test/test_config/test.py | 68 | # Create the flow | COMMENT |
| MEDIUM | metaflow/tuple_util.py | 16 | # Define the namedtuple with default here if they need to be accessible in client | COMMENT |
| MEDIUM | metaflow/cli_args.py | 1 | # This class provides a global singleton `cli_args` which stores the `top` and | COMMENT |
| MEDIUM | metaflow/util.py | 459 | # This function is imported from https://github.com/cookiecutter/whichcraft | COMMENT |
| MEDIUM | metaflow/metaflow_config_funcs.py | 36 | # This function is heavily inspired from LocalStorage.get_datastore_root_from_config | COMMENT |
| MEDIUM | metaflow/runtime.py | 204 | # Create a new run_id for the spin task | COMMENT |
| MEDIUM | metaflow/metaflow_version.py | 8 | # This file is adapted from https://github.com/aebrahim/python-git-version | COMMENT |
| MEDIUM | metaflow/_vendor/packaging/tags.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | metaflow/_vendor/packaging/version.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | metaflow/_vendor/packaging/__init__.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | metaflow/_vendor/packaging/utils.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | metaflow/_vendor/packaging/requirements.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | metaflow/_vendor/packaging/_structures.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | metaflow/_vendor/packaging/markers.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | metaflow/_vendor/packaging/specifiers.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | metaflow/_vendor/click/_winconsole.py | 2 | # This module is based on the excellent work by Adam Bartoš who | COMMENT |
| MEDIUM | metaflow/_vendor/yaml/reader.py | 1 | # This module contains abstractions for the input stream. You don't have to | COMMENT |
| MEDIUM | metaflow/_vendor/v3_7/typeguard/_decorators.py | 101 | # Create a new closure and find values for the new free variables | COMMENT |
| MEDIUM | metaflow/_vendor/v3_6/typing_extensions.py | 1128 | # This method is called directly when TypedDict is subclassed, | COMMENT |
| MEDIUM | metaflow/_vendor/typeguard/_decorators.py | 99 | # Create a new closure and find values for the new free variables | COMMENT |
| MEDIUM | metaflow/plugins/pypi/conda_environment.py | 437 | # Create a stable unique id for the environment. | COMMENT |
| MEDIUM | metaflow/plugins/cards/card_modules/components.py | 1140 | # Create an events component | STRING |
| MEDIUM | metaflow/plugins/datatools/s3/s3tail.py | 22 | # This method is required by @aws_retry | COMMENT |
| MEDIUM | metaflow/plugins/metadata_providers/local.py | 25 | # This method is meant to be overridden | COMMENT |
| MEDIUM | metaflow/plugins/env_escape/server.py | 391 | # This function is called to pickle obj to be transferred to the client | COMMENT |
| MEDIUM | metaflow/plugins/env_escape/client.py | 512 | # This function is called to pickle obj to be transferred back to the | COMMENT |
| MEDIUM | metaflow/plugins/env_escape/client.py | 527 | # This function is called when the server sends a remote reference. | COMMENT |
| MEDIUM | metaflow/plugins/env_escape/exception_transferer.py | 12 | # This file is heavily inspired from the RPYC project | COMMENT |
| MEDIUM | metaflow/plugins/argo/argo_workflows.py | 2641 | # Create a ContainerTemplate for this node. Ideally, we would have | COMMENT |
| MEDIUM | metaflow/runner/deployer_impl.py | 17 | # This file is needed in any of the DeployerImpl implementations | COMMENT |
| MEDIUM | metaflow/extension_support/cmd.py | 15 | # This file is identical in functionality to the plugins.py file. Please refer to that | COMMENT |
| MEDIUM | metaflow/extension_support/__init__.py | 21 | # This file provides the support for Metaflow's extension mechanism which allows | COMMENT |
| MEDIUM | metaflow/extension_support/integrations.py | 8 | # This file is similar in functionality to the cmd.py file. Please refer to that | COMMENT |
| MEDIUM | metaflow/system/system_utils.py | 9 | # This function is used to initialize the environment outside a flow. | COMMENT |
| MEDIUM | metaflow/tutorials/04-playlist-plus/playlist.py | 91 | # Define a helper function to compute the similarity between two | COMMENT |
| MEDIUM | metaflow/user_configs/config_options.py | 198 | # This function is called by click when processing all the --config and | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | test/unit/inheritance/test_inheritance.py | 212 | """Test comprehensive multiple inheritance from independent hierarchies""" | STRING |
| MEDIUM | test/unit/inheritance/test_inheritance.py | 17 | """Test comprehensive linear inheritance: FlowSpec -> BaseA -> BaseB -> BaseC -> Flow""" | STRING |
| MEDIUM | test/unit/inheritance/test_inheritance.py | 152 | """Test comprehensive diamond inheritance pattern""" | STRING |
| MEDIUM | R/R/package.R | 4 | #' who work on a wide variety of projects from classical statistics to state-of-the-art deep learning. | COMMENT |
| LOW | metaflow/task.py | 221 | # Reset the parameter to just return the value now that we have loaded it | COMMENT |
| LOW | metaflow/task.py | 444 | # steps are *never* part of an iteration, we can simplify and just set it | COMMENT |
| LOW | metaflow/includefile.py | 173 | # # just return a blob indicating how to get the file. | COMMENT |
| LOW | metaflow/includefile.py | 321 | # second case, we can just return the string as the FilePath.convert method | COMMENT |
| LOW | metaflow/metaflow_config_funcs.py | 74 | # By default, we just return non-null values and that | COMMENT |
| MEDIUM | metaflow/metaflow_config.py | 60 | # Essentially a whitelist of decorators that are allowed in Spin steps | COMMENT |
| MEDIUM | metaflow/metaflow_config.py | 76 | # Essentially a blacklist of decorators that are not allowed in Spin steps | COMMENT |
| MEDIUM | metaflow/runtime.py | 437 | # leverage the TaskDataStoreSet abstraction to prefetch the | COMMENT |
| LOW | metaflow/_vendor/packaging/specifiers.py | 459 | # version. If it's not we can short circuit and just return False now | STRING |
| LOW | metaflow/_vendor/packaging/specifiers.py | 484 | # version. If it's not we can short circuit and just return False now | STRING |
| LOW | metaflow/_vendor/packaging/specifiers.py | 728 | # then we'll just return None since we don't know if this should have | STRING |
| LOW | metaflow/_vendor/v3_7/typeguard/_transformer.py | 455 | # If the transformer erased the slice entirely, just return the node | COMMENT |
| LOW | metaflow/_vendor/typeguard/_transformer.py | 457 | # If the transformer erased the slice entirely, just return the node | COMMENT |
| MEDIUM | metaflow/plugins/pypi/pypi_decorator.py | 85 | # We should introduce a more robust mechanism for appending supported environments, for example from within exte | COMMENT |
| MEDIUM | metaflow/plugins/pypi/pypi_decorator.py | 162 | # We should introduce a more robust mechanism for appending supported environments, for example from within exte | COMMENT |
| MEDIUM | metaflow/plugins/pypi/conda_decorator.py | 120 | # We should introduce a more robust mechanism for appending supported environments, for example from within exte | COMMENT |
| MEDIUM | metaflow/plugins/pypi/conda_decorator.py | 358 | # We should introduce a more robust mechanism for appending supported environments, for example from within exte | COMMENT |
| MEDIUM | metaflow/plugins/datastores/azure_storage.py | 231 | # But checking blob_type is more robust | COMMENT |
| LOW | metaflow/plugins/datastores/azure_storage.py | 248 | # inline as a class member. So let's just return a regular tuple. list_content() | COMMENT |
| LOW⚡ | metaflow/plugins/azure/azure_utils.py | 149 | # In most cases, we take a fast path - we always just return that fixed token. | COMMENT |
| LOW | metaflow/plugins/secrets/secrets_spec.py | 56 | # + in this case, user can simply set "azure-key-vault.aws-secrets-manager.XYZ" instead! | COMMENT |
| LOW | metaflow/plugins/cards/component_serializer.py | 604 | # since `editable_cards_meta` hold only `editable=True` by default we can just set this card here. | COMMENT |
| MEDIUM | metaflow/plugins/cards/ui/package-lock.json | 5032 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", | CODE |
| LOW | metaflow/plugins/cards/card_modules/chevron/renderer.py | 58 | # Then just return the current scope | COMMENT |
| LOW | metaflow/plugins/gcp/gs_tail.py | 50 | # otherwise download_as_bytes will simply return the same content for consecutive requests with the same att | COMMENT |
| LOW | metaflow/plugins/airflow/airflow.py | 214 | # we can just use the `default` to infer the object's type. | COMMENT |
| LOW | metaflow/plugins/metadata_providers/local.py | 65 | # We currently just use the timestamp to create an ID. We can be reasonably certain | COMMENT |
| MEDIUM | metaflow/plugins/env_escape/server.py | 277 | # Keep the print line to facilitate debugging | COMMENT |
| LOW | metaflow/plugins/env_escape/client.py | 61 | # Typically it's one override per config so we just use the first one. | COMMENT |
| LOW | metaflow/plugins/env_escape/stub.py | 263 | # the first case. If that is the case, we just pass everything down to the | COMMENT |
| LOW | metaflow/plugins/aws/step_functions/step_functions.py | 567 | # identity, we will just set their user to `SFN`. We still do need | COMMENT |
| LOW | metaflow/plugins/aws/batch/batch_decorator.py | 151 | # If metaflow-config specifies a docker image, just use that. | COMMENT |
| MEDIUM | metaflow/plugins/kubernetes/kubernetes_job.py | 413 | # themselves, state machines, nor do we define comprehensive state | COMMENT |
| LOW | metaflow/plugins/kubernetes/kubernetes_decorator.py | 286 | # If metaflow-config specifies a docker image, just use that. | COMMENT |
| MEDIUM | metaflow/plugins/argo/argo_workflows.py | 1747 | # thing as the foreach node. We will leverage a similar pattern for the | COMMENT |
| MEDIUM | metaflow/plugins/argo/argo_workflows.py | 1792 | # we can piggyback on the current mechanism with which we leverage argo. | COMMENT |
| MEDIUM | metaflow/plugins/argo/argo_workflows.py | 3888 | # Service accounts are a hard requirement since we utilize the | COMMENT |
| LOW | metaflow/plugins/argo/argo_workflows.py | 1330 | # we cant just use hyphens with sprig. | COMMENT |
| LOW | metaflow/metadata_provider/metadata.py | 436 | # If no attempt or not for metadata, just return as is | COMMENT |
| LOW | metaflow/extension_support/plugins.py | 162 | # If we have no name function, it means we just use the name in the dictionary | COMMENT |
| MEDIUM | metaflow/extension_support/__init__.py | 43 | # typically used in conjunction with lazy_load_aliases which takes care of actually | COMMENT |
| LOW | metaflow/extension_support/__init__.py | 1078 | # We are aliasing a module, so we just return that one | COMMENT |
| LOW | metaflow/datastore/task_datastore.py | 167 | # We already loaded the data metadata so just use that | COMMENT |
| LOW | metaflow/user_decorators/user_step_decorator.py | 267 | # If we are ignoring duplicates, we just return None to signal that | COMMENT |
| MEDIUM | metaflow/client/core.py | 1732 | # just failed to record metadata. We could make this logic more robust | COMMENT |
| LOW | metaflow/client/core.py | 2122 | # All tasks have the same environment info so just use the first one | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | test/unit/localbatch/test_localbatch.py | 233 | command=["sh", "-c", "echo success && exit 0"], | CODE |
| HIGH | test/ux/core/test_lifecycle.py | 128 | # New default path: list field, no null, legacy field absent. | COMMENT |
| HIGH | metaflow/_vendor/click/_termui_impl.py | 527 | return subprocess.Popen(args, stderr=null).wait() | CODE |
| HIGH | …plugins/azure/azure_secret_manager_secrets_provider.py | 77 | # if the secret_id is None/empty/does not start with https then return false | COMMENT |
| HIGH | …plugins/azure/azure_secret_manager_secrets_provider.py | 188 | # if the secret_id is None/empty/does not start with https then return false | COMMENT |
| HIGH | metaflow/plugins/airflow/airflow.py | 603 | cmd = "if ! %s >/dev/null 2>/dev/null; then %s && %s; fi" % ( | CODE |
| HIGH | metaflow/plugins/aws/step_functions/step_functions.py | 134 | self._state_machine_arn = self._client.push( | CODE |
| HIGH | metaflow/plugins/aws/step_functions/step_functions.py | 1003 | cmd = "if ! %s >/dev/null 2>/dev/null; then %s && %s; fi" % ( | CODE |
| HIGH | metaflow/plugins/aws/batch/batch.py | 96 | cmd_str = "true && mkdir -p %s && %s && %s && %s; " % ( | CODE |
| HIGH | metaflow/plugins/kubernetes/kubernetes.py | 127 | cmd_str = "true && mkdir -p %s && %s && %s && %s; " % ( | CODE |
| HIGH | metaflow/plugins/argo/argo_workflows.py | 2245 | "if ! %s >/dev/null 2>/dev/null; then %s; fi" | CODE |
| HIGH | metaflow/plugins/argo/argo_client.py | 342 | # `schedules` is a list field; use an empty list (not null) when | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/core/metaflow_test/__init__.py | 128 | # Check if the keys match | COMMENT |
| LOW | test/data/s3/s3_data.py | 506 | # Check if the data exists and has been modified in the last | COMMENT |
| LOW | metaflow/includefile.py | 181 | # Check if this is a valid local file | COMMENT |
| LOW | metaflow/graph.py | 242 | # Check if first argument is a dictionary (switch case) | COMMENT |
| LOW | metaflow/metaflow_config.py | 695 | # Check if there are extensions to Metaflow to load and override everything | COMMENT |
| LOW | metaflow/runtime.py | 1107 | # Check if we are entering a looping construct. Right now, only recursive | COMMENT |
| LOW | metaflow/runtime.py | 1741 | # Check if we should be the resume leader (maybe from previous attempt). | COMMENT |
| LOW | metaflow/runtime.py | 1797 | # Check if resume is complete. Resume leader will write the done file. | COMMENT |
| LOW | metaflow/flowspec.py | 831 | # Check if everything in include is present in to_merge | COMMENT |
| LOW | metaflow/cli.py | 367 | # Check if we need to setup the distribution finder (if running ) | COMMENT |
| LOW⚡ | metaflow/decorators.py | 696 | # Check if it is a user-defined decorator or metaflow decorator | COMMENT |
| LOW⚡ | metaflow/decorators.py | 704 | # Check if this is a decorator we can import | COMMENT |
| LOW | metaflow/decorators.py | 733 | # Check if it is a user-defined decorator or metaflow decorator | COMMENT |
| LOW | metaflow/cmd/tutorials_cmd.py | 120 | # Check if episode has already been pulled before. | COMMENT |
| LOW | metaflow/_vendor/typing_extensions.py | 679 | # Check if the members appears in the class dictionary... | COMMENT |
| LOW | metaflow/_vendor/yaml/scanner.py | 114 | # Check if the next token is one of the given types. | COMMENT |
| LOW | metaflow/_vendor/yaml/scanner.py | 300 | # Check if a simple key is required at the current position. | COMMENT |
| LOW | metaflow/_vendor/yaml/scanner.py | 350 | # Check if we need to increase indentation. | COMMENT |
| LOW | metaflow/_vendor/v3_7/typing_extensions.py | 722 | # Check if the members appears in the class dictionary... | COMMENT |
| LOW | metaflow/_vendor/v3_7/typeguard/_transformer.py | 524 | # Check if the function is a generator function | COMMENT |
| LOW⚡ | metaflow/_vendor/typeguard/_checkers.py | 645 | # Check if the protocol-side method is a class method or static method | COMMENT |
| LOW⚡ | metaflow/_vendor/typeguard/_checkers.py | 653 | # Check if the subject-side method is a class method or static method | COMMENT |
| LOW | metaflow/_vendor/typeguard/_transformer.py | 540 | # Check if the function is a generator function | COMMENT |
| LOW | metaflow/plugins/exit_hook/exit_hook_script.py | 30 | # Check if fn expects a run object as an arg. | COMMENT |
| LOW | …w/plugins/cards/card_modules/convert_to_native_type.py | 119 | # Check if artifact size exceeds the maximum allowed size | COMMENT |
| LOW | metaflow/plugins/datatools/s3/s3.py | 1691 | # Check if we want to inject failures (for testing) | COMMENT |
| LOW | metaflow/plugins/airflow/airflow.py | 590 | # Assign tags to run objects. | COMMENT |
| LOW | metaflow/plugins/env_escape/server.py | 517 | # Check if __init__ is overridden | COMMENT |
| LOW | metaflow/plugins/aws/step_functions/step_functions.py | 991 | # Assign tags to run objects. | COMMENT |
| LOW | metaflow/plugins/kubernetes/kubernetes_job.py | 584 | # Check if the container is done. As a side effect, also refreshes self._job and | COMMENT |
| LOW | metaflow/plugins/kubernetes/kubernetes_decorator.py | 305 | # Check if TmpFS is enabled and set default tmpfs_size if missing. | COMMENT |
| LOW | metaflow/plugins/argo/argo_workflows.py | 2609 | # Set shared_memory to 0 if it isn't specified. This results | COMMENT |
| LOW | metaflow/plugins/argo/argo_workflows_decorator.py | 114 | # Set splits to 1 since parallelism is handled by JobSet. | COMMENT |
| LOW | metaflow/runner/click_api.py | 237 | # Check if the module has already been loaded | COMMENT |
| LOW | metaflow/runner/click_api.py | 455 | # Check if it was set through an environment variable -- we | COMMENT |
| LOW | metaflow/extension_support/__init__.py | 382 | # Check if we even have extensions | COMMENT |
| LOW | metaflow/extension_support/__init__.py | 596 | # Check if this is an "init" file | COMMENT |
| LOW | metaflow/datastore/task_datastore.py | 197 | # Check if the latest attempt was completed successfully except | COMMENT |
| LOW | metaflow/datastore/spin_datastore.py | 61 | # Check if it's an artifact in the spin_artifacts | COMMENT |
| LOW | metaflow/datastore/spin_datastore.py | 65 | # Check if it's an attribute of the task | COMMENT |
| LOW | metaflow/user_decorators/mutable_flow.py | 553 | # Check if this is a FlowMutator class or instance | COMMENT |
| LOW | metaflow/user_decorators/mutable_flow.py | 634 | # Check if the name matches a FlowMutator — these cannot be removed | COMMENT |
| LOW | metaflow/user_decorators/mutable_step.py | 496 | # Check if the decorator specification matches | COMMENT |
| LOW | metaflow/package/__init__.py | 612 | # Check if the path is not duplicated as | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | metaflow/runtime.py | 353 | CODE | |
| LOW | metaflow/runtime.py | 1582 | CODE | |
| LOW | metaflow/cli.py | 333 | CODE | |
| LOW | metaflow/metaflow_current.py | 36 | CODE | |
| LOW | metaflow/cli_components/run_cmds.py | 223 | CODE | |
| LOW | metaflow/cli_components/run_cmds.py | 366 | CODE | |
| LOW | metaflow/cli_components/step_cmd.py | 100 | CODE | |
| LOW | metaflow/cli_components/step_cmd.py | 256 | CODE | |
| LOW | metaflow/mflog/__init__.py | 87 | CODE | |
| LOW | metaflow/_vendor/click/core.py | 245 | CODE | |
| LOW | metaflow/_vendor/click/core.py | 865 | CODE | |
| LOW | metaflow/_vendor/click/core.py | 1468 | CODE | |
| LOW | metaflow/_vendor/click/core.py | 1694 | CODE | |
| LOW | metaflow/_vendor/click/types.py | 560 | CODE | |
| LOW | metaflow/_vendor/click/termui.py | 75 | CODE | |
| LOW | metaflow/_vendor/click/termui.py | 294 | CODE | |
| LOW | metaflow/_vendor/click/termui.py | 433 | CODE | |
| LOW | metaflow/_vendor/click/_termui_impl.py | 53 | CODE | |
| LOW | metaflow/_vendor/yaml/__init__.py | 215 | CODE | |
| LOW | metaflow/_vendor/yaml/__init__.py | 252 | CODE | |
| LOW | metaflow/_vendor/yaml/dumper.py | 11 | CODE | |
| LOW | metaflow/_vendor/yaml/dumper.py | 29 | CODE | |
| LOW | metaflow/_vendor/yaml/dumper.py | 47 | CODE | |
| LOW | metaflow/_vendor/yaml/cyaml.py | 53 | CODE | |
| LOW | metaflow/_vendor/yaml/cyaml.py | 70 | CODE | |
| LOW | metaflow/_vendor/yaml/cyaml.py | 87 | CODE | |
| LOW | metaflow/plugins/pypi/micromamba.py | 281 | CODE | |
| LOW | metaflow/plugins/cards/card_creator.py | 62 | CODE | |
| LOW | metaflow/plugins/cards/card_cli.py | 625 | CODE | |
| LOW | metaflow/plugins/cards/card_modules/chevron/renderer.py | 134 | CODE | |
| LOW | metaflow/plugins/datatools/s3/s3op.py | 937 | CODE | |
| LOW | metaflow/plugins/datatools/s3/s3op.py | 1136 | CODE | |
| LOW | metaflow/plugins/datatools/s3/s3op.py | 1287 | CODE | |
| LOW | metaflow/plugins/airflow/airflow.py | 64 | CODE | |
| LOW | metaflow/plugins/airflow/airflow_cli.py | 216 | CODE | |
| LOW | …aflow/plugins/aws/step_functions/step_functions_cli.py | 161 | CODE | |
| LOW | metaflow/plugins/aws/step_functions/step_functions.py | 38 | CODE | |
| LOW | metaflow/plugins/aws/step_functions/step_functions.py | 189 | CODE | |
| LOW | metaflow/plugins/aws/batch/batch_cli.py | 206 | CODE | |
| LOW | metaflow/plugins/aws/batch/batch.py | 224 | CODE | |
| LOW | metaflow/plugins/aws/batch/batch.py | 409 | CODE | |
| LOW | metaflow/plugins/kubernetes/kubernetes_cli.py | 168 | CODE | |
| LOW | metaflow/plugins/kubernetes/kubernetes.py | 162 | CODE | |
| LOW | metaflow/plugins/kubernetes/kubernetes.py | 466 | CODE | |
| LOW | metaflow/plugins/kubernetes/spot_monitor_sidecar.py | 58 | CODE | |
| LOW | metaflow/plugins/argo/argo_workflows_cli.py | 257 | CODE | |
| LOW | metaflow/plugins/argo/argo_workflows.py | 96 | CODE | |
| LOW | metaflow/datastore/flow_datastore.py | 79 | CODE | |
| LOW | metaflow/datastore/flow_datastore.py | 257 | CODE | |
| LOW | metaflow/client/core.py | 272 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | metaflow/plugins/datastores/azure_storage.py | 140 | from azure.core.exceptions import ResourceExistsError | CODE |
| CRITICAL | metaflow/plugins/datastores/azure_storage.py | 184 | from azure.core.exceptions import ResourceNotFoundError | CODE |
| CRITICAL | metaflow/plugins/datastores/azure_storage.py | 320 | from azure.core.exceptions import ResourceNotFoundError | CODE |
| CRITICAL | metaflow/plugins/azure/azure_tail.py | 3 | from azure.core.exceptions import ResourceNotFoundError, HttpResponseError | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | metaflow/_vendor/zipp.py | 15 | __all__ = ['Path'] | CODE |
| LOW | metaflow/_vendor/typing_extensions.py | 13 | __all__ = [ | CODE |
| LOW | metaflow/_vendor/packaging/tags.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | metaflow/_vendor/packaging/version.py | 17 | __all__ = ["VERSION_PATTERN", "parse", "Version", "InvalidVersion"] | CODE |
| LOW | metaflow/_vendor/packaging/markers.py | 16 | __all__ = [ | CODE |
| LOW | metaflow/_vendor/importlib_metadata/__init__.py | 35 | __all__ = [ | CODE |
| LOW | metaflow/_vendor/importlib_metadata/_compat.py | 5 | __all__ = ['install', 'NullFinder', 'Protocol'] | CODE |
| LOW | metaflow/_vendor/yaml/scanner.py | 27 | __all__ = ['Scanner', 'ScannerError'] | CODE |
| LOW | metaflow/_vendor/yaml/error.py | 2 | __all__ = ['Mark', 'YAMLError', 'MarkedYAMLError'] | CODE |
| LOW | metaflow/_vendor/yaml/constructor.py | 2 | __all__ = [ | CODE |
| LOW | metaflow/_vendor/yaml/composer.py | 2 | __all__ = ['Composer', 'ComposerError'] | CODE |
| LOW | metaflow/_vendor/yaml/representer.py | 2 | __all__ = ['BaseRepresenter', 'SafeRepresenter', 'Representer', | CODE |
| LOW | metaflow/_vendor/yaml/dumper.py | 2 | __all__ = ['BaseDumper', 'SafeDumper', 'Dumper'] | CODE |
| LOW | metaflow/_vendor/yaml/cyaml.py | 2 | __all__ = [ | CODE |
| LOW | metaflow/_vendor/yaml/parser.py | 62 | __all__ = ['Parser', 'ParserError'] | CODE |
| LOW | metaflow/_vendor/yaml/reader.py | 18 | __all__ = ['Reader', 'ReaderError'] | CODE |
| LOW | metaflow/_vendor/yaml/loader.py | 2 | __all__ = ['BaseLoader', 'FullLoader', 'SafeLoader', 'Loader', 'UnsafeLoader'] | CODE |
| LOW | metaflow/_vendor/yaml/resolver.py | 2 | __all__ = ['BaseResolver', 'Resolver'] | CODE |
| LOW | metaflow/_vendor/yaml/serializer.py | 2 | __all__ = ['Serializer', 'SerializerError'] | CODE |
| LOW | metaflow/_vendor/yaml/emitter.py | 9 | __all__ = ['Emitter', 'EmitterError'] | CODE |
| LOW | metaflow/_vendor/imghdr/__init__.py | 6 | __all__ = ["what"] | CODE |
| LOW | metaflow/_vendor/v3_7/zipp.py | 15 | __all__ = ['Path'] | CODE |
| LOW | metaflow/_vendor/v3_7/typing_extensions.py | 12 | __all__ = [ | CODE |
| LOW | metaflow/_vendor/v3_7/importlib_metadata/__init__.py | 35 | __all__ = [ | CODE |
| LOW | metaflow/_vendor/v3_7/importlib_metadata/_compat.py | 5 | __all__ = ['install', 'NullFinder', 'Protocol'] | CODE |
| LOW | metaflow/_vendor/v3_6/zipp.py | 15 | __all__ = ['Path'] | CODE |
| LOW | metaflow/_vendor/v3_6/typing_extensions.py | 22 | __all__ = [ | CODE |
| LOW | metaflow/_vendor/v3_6/importlib_metadata/__init__.py | 35 | __all__ = [ | CODE |
| LOW | metaflow/_vendor/v3_6/importlib_metadata/_compat.py | 5 | __all__ = ['install', 'NullFinder', 'Protocol'] | CODE |
| LOW | metaflow/plugins/cards/card_modules/chevron/__init__.py | 5 | __all__ = ["main", "render", "cli_main", "ChevronError"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/unit/test_compute_resource_attributes.py | 15 | # @batch overrides default and you can use ints as attributes | COMMENT |
| LOW | metaflow/includefile.py | 106 | # Click can call convert multiple times, so we need to make sure to only | COMMENT |
| LOW | metaflow/_vendor/packaging/markers.py | 190 | # added here, make sure to mirror/adapt Requirement. | COMMENT |
| LOW | metaflow/plugins/pypi/micromamba.py | 162 | # If we are forcing a rebuild of the environment, we make sure to remove existing files beforehand. | COMMENT |
| LOW | metaflow/plugins/datastores/gs_storage.py | 230 | # make sure to close the file handle after reading. | COMMENT |
| LOW | metaflow/plugins/datastores/azure_storage.py | 356 | # make sure to close the file handle after reading. | COMMENT |
| LOW⚡ | metaflow/packaging_sys/v1.py | 419 | # `package_mfext_all` but in that case, make sure to also add a | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | metaflow/plugins/cards/card_datastore.py | 190 | Args: path (str): The path to the card Raises: Exception: When the card_path i | STRING |
| HIGH | metaflow/plugins/cards/card_cli.py | 115 | Resolves the card path for a query. Args: ctx: click context object pathspec: pathspec can be `step | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | metaflow/plugins/airflow/airflow.py | 741 | # Based on the code, Airflow will throw a `AirflowException` when `start_date` is not provided | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/core/run_tests.py | 290 | # Step 1: compile and deploy the workflow template | COMMENT |
| LOW | test/core/run_tests.py | 312 | # Step 2: trigger the workflow; run_id written to file by --run-id-file | COMMENT |
| LOW | test/core/run_tests.py | 345 | # Step 3: poll the metadata service until the run finishes | COMMENT |
| LOW | metaflow/runtime.py | 1732 | # If the task id already exists, we need to check if current task is the resume leader in previous a | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/core/run_tests.py | 290 | # Step 1: compile and deploy the workflow template | COMMENT |
| LOW | test/core/run_tests.py | 312 | # Step 2: trigger the workflow; run_id written to file by --run-id-file | COMMENT |
| LOW | test/core/run_tests.py | 345 | # Step 3: poll the metadata service until the run finishes | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | metaflow/_vendor/v3_7/typeguard/_checkers.py | 647 | # TODO: implement proper compatibility checking and support non-runtime protocols | COMMENT |
| LOW | metaflow/_vendor/typeguard/_checkers.py | 818 | # TODO: implement assignability checks for parameter and return value | COMMENT |
| LOW | metaflow/plugins/kubernetes/kubernetes_decorator.py | 442 | # TODO: add validation to annotations as well? | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/ux/core/flows/basic/fail_flow.py | 18 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | metaflow/plugins/cards/card_modules/test_cards.py | 77 | def __init__(self, options={"key": "dummy_key"}, **kwargs): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | metaflow/plugins/cards/card_modules/components.py | 1075 | def my_function(): | STRING |