Build, Manage and Deploy AI/ML Systems
This report summarizes scanner evidence for Netflix/metaflow, a Python project with 10,300 GitHub stars. SynthScan examined 181,106 lines of code across 942 source files, recording 3152 pattern matches distributed across 24 syntactic categories. The legacy adjusted pattern signal is 32.0 (High pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1645 finding(s).
Are imports declared and package/API names verified? 599 finding(s).
Are wrappers, guards, and repeated structures necessary? 1800 finding(s).
Which changes need focused human review? 3152 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 3152 distinct pattern matches across 24 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| 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 |
| 782 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | test/unit/test_graph_structure.py | 196 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 198 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 208 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 210 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 261 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 263 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 434 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 436 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 508 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 510 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 655 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/unit/test_graph_structure.py | 657 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 21 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 23 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 126 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 128 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 168 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 170 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 314 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 316 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 338 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 340 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 366 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 368 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 544 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_graph_structure.py | 546 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/unit/test_argo_nested_conditional_join.py | 19 | # ── Flows ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/unit/test_argo_nested_conditional_join.py | 233 | # ── Fixtures ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/unit/test_argo_nested_conditional_join.py | 295 | # ── Tests ──────────────────────────────────────────────────────────────────── | 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 |
| 133 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/unit/test_pypi_parsers.py | 107 | except ParserValueError: | CODE |
| HIGH | test/core/run_tests.py | 358 | except Exception: | CODE |
| HIGH | test/core/tests/tag_catch.py | 93 | except KeyError: | CODE |
| HIGH | test/core/tests/basic_parameters.py | 45 | except AttributeError: | CODE |
| HIGH | test/core/tests/catch_retry.py | 91 | except KeyError: | CODE |
| HIGH | test/core/tests/constants.py | 51 | except AttributeError: | CODE |
| HIGH | test/core/tests/constants.py | 58 | except AttributeError: | CODE |
| HIGH | test/core/tests/basic_config_parameters.py | 113 | except TypeError: | CODE |
| HIGH | test/core/tests/basic_config_parameters.py | 119 | except TypeError: | CODE |
| HIGH | test/core/tests/basic_include.py | 51 | except AttributeError: | CODE |
| HIGH | test/ux/core/test_utils.py | 46 | except Exception: | CODE |
| HIGH | test/ux/core/test_airflow_compilation.py | 128 | except ImportError: | CODE |
| HIGH | test/ux/core/test_airflow_compilation.py | 56 | except OSError: | CODE |
| HIGH | test/ux/core/test_airflow_compilation.py | 77 | except OSError: | CODE |
| HIGH | test/ux/core/test_airflow_compilation.py | 154 | except OSError: | CODE |
| HIGH | test/data/s3/conftest.py | 66 | except AttributeError: | CODE |
| HIGH | test/data/s3/conftest.py | 54 | except AttributeError: | CODE |
| HIGH | metaflow/exception.py | 173 | except KeyError: | CODE |
| HIGH | metaflow/graph.py | 491 | except ValueError: | CODE |
| HIGH | metaflow/metaflow_config.py | 789 | except KeyError: | CODE |
| HIGH | metaflow/__init__.py | 202 | except KeyError: | CODE |
| HIGH | metaflow/runtime.py | 1043 | except Exception as ex: | CODE |
| HIGH | metaflow/runtime.py | 2416 | except: | CODE |
| HIGH | metaflow/runtime.py | 2437 | except: | CODE |
| HIGH | metaflow/runtime.py | 1705 | except ValueError: | CODE |
| HIGH | metaflow/runtime.py | 1718 | except DataException as e: | CODE |
| HIGH | metaflow/metaflow_version.py | 34 | except subprocess.CalledProcessError: | CODE |
| HIGH | metaflow/cmd/develop/stub_generator.py | 547 | except: | CODE |
| HIGH | metaflow/cmd/develop/stub_generator.py | 140 | except: | CODE |
| HIGH | metaflow/cmd/develop/stub_generator.py | 144 | except: | CODE |
| HIGH | metaflow/tracing/tracing_modules.py | 51 | except ImportError: | CODE |
| HIGH | metaflow/cli_components/run_cmds.py | 280 | except (TypeError, ValueError): | CODE |
| HIGH | metaflow/mflog/mflog.py | 88 | except: | CODE |
| HIGH | metaflow/mflog/save_logs_periodically.py | 41 | except BaseException: | CODE |
| HIGH | metaflow/mflog/save_logs_periodically.py | 114 | except: | CODE |
| HIGH | metaflow/_vendor/typing_extensions.py | 3590 | except ImportError: | CODE |
| HIGH | metaflow/_vendor/typing_extensions.py | 247 | except (AttributeError, TypeError): | CODE |
| HIGH | metaflow/_vendor/typing_extensions.py | 381 | except AttributeError: | CODE |
| HIGH | metaflow/_vendor/typing_extensions.py | 2721 | except (AttributeError, TypeError): | CODE |
| HIGH | metaflow/_vendor/typing_extensions.py | 302 | except TypeError: | CODE |
| HIGH | metaflow/_vendor/typing_extensions.py | 3157 | except AttributeError: | CODE |
| HIGH | metaflow/_vendor/packaging/tags.py | 208 | except ValueError: | CODE |
| HIGH | metaflow/_vendor/packaging/markers.py | 106 | except InvalidSpecifier: | CODE |
| HIGH | metaflow/_vendor/click/_winconsole.py | 211 | except Exception: | CODE |
| HIGH | metaflow/_vendor/click/types.py | 726 | except TypeError: | CODE |
| HIGH | metaflow/_vendor/click/parser.py | 116 | except UnicodeError: | CODE |
| HIGH | metaflow/_vendor/click/termui.py | 258 | except Exception: | CODE |
| HIGH | metaflow/_vendor/click/termui.py | 677 | except (KeyboardInterrupt, EOFError): | CODE |
| HIGH | metaflow/_vendor/click/utils.py | 42 | except Exception: | CODE |
| HIGH | metaflow/_vendor/click/_compat.py | 205 | except ImportError: | CODE |
| HIGH | metaflow/_vendor/click/_compat.py | 220 | except ImportError: | CODE |
| HIGH | metaflow/_vendor/click/_compat.py | 686 | except ImportError: | CODE |
| HIGH | metaflow/_vendor/click/_compat.py | 94 | except Exception: | CODE |
| HIGH | metaflow/_vendor/click/_compat.py | 764 | except Exception: | CODE |
| HIGH | metaflow/_vendor/click/_compat.py | 212 | except Exception: | CODE |
| HIGH | metaflow/_vendor/click/_compat.py | 227 | except Exception: | CODE |
| HIGH | metaflow/_vendor/click/_compat.py | 613 | except OSError: | CODE |
| HIGH | metaflow/_vendor/click/_compat.py | 718 | except Exception: | CODE |
| HIGH | metaflow/_vendor/click/_compat.py | 82 | except Exception: | CODE |
| HIGH | metaflow/_vendor/click/_compat.py | 303 | except Exception: | CODE |
| 78 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 | 16 | 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 | 632 | CODE | |
| LOW | metaflow/util.py | 638 | 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 | |
| 357 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 | 37 | 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 | 627 | 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 | 127 | except Exception as ex: | CODE |
| MEDIUM | metaflow/mflog/__init__.py | 117 | 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 | devtools/tilt/k8s/minio.yaml | 1 | # Standalone MinIO for the devstack. | 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 | for d in dirs: | 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 | 21 | COMMENT | |
| LOW | metaflow/metaflow_config.py | 141 | # so setting it to 0 means each operation will be tried once. | COMMENT |
| 119 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | test/unit/test_argo_nested_conditional_join.py | 310 | assert _depends(aw, "inner_join") == "b-sub-a.Succeeded || b-sub-b.Succeeded" | CODE |
| HIGH⚡ | test/unit/test_argo_nested_conditional_join.py | 311 | assert _depends(aw, "outer_join") == "a-branch-b.Succeeded || inner-join.Succeeded" | CODE |
| HIGH⚡ | test/unit/test_argo_nested_conditional_join.py | 326 | assert _depends(aw, "inner_join") == "x-sub-a.Succeeded || x-sub-b.Succeeded" | CODE |
| HIGH⚡ | test/unit/test_argo_nested_conditional_join.py | 327 | assert _depends(aw, "outer_join") == "inner-join.Succeeded || z-branch-b.Succeeded" | CODE |
| HIGH⚡ | test/unit/test_argo_nested_conditional_join.py | 339 | assert _depends(aw, "join") == "left.Succeeded || right.Succeeded" | CODE |
| HIGH⚡ | test/unit/test_argo_nested_conditional_join.py | 347 | assert _depends(aw, "join1") == "left.Succeeded || right.Succeeded" | CODE |
| HIGH⚡ | test/unit/test_argo_nested_conditional_join.py | 348 | assert _depends(aw, "join2") == "down.Succeeded || up.Succeeded" | CODE |
| HIGH⚡ | test/unit/test_argo_nested_conditional_join.py | 357 | assert _depends(aw, "merge") == "shortcut.Succeeded || step-c.Succeeded" | CODE |
| 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 | 124 | cmd_str = "true && mkdir -p %s && %s && %s && %s; " % ( | CODE |
| HIGH | metaflow/plugins/argo/argo_workflows.py | 2250 | "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 |
|---|---|---|---|---|
| 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 | 2646 | # 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 | 64 | # Essentially a whitelist of decorators that are allowed in Spin steps | COMMENT |
| MEDIUM | metaflow/metaflow_config.py | 80 | # 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 | 1752 | # thing as the foreach node. We will leverage a similar pattern for the | COMMENT |
| MEDIUM | metaflow/plugins/argo/argo_workflows.py | 1797 | # we can piggyback on the current mechanism with which we leverage argo. | COMMENT |
| MEDIUM | metaflow/plugins/argo/argo_workflows.py | 3893 | # Service accounts are a hard requirement since we utilize the | COMMENT |
| LOW | metaflow/plugins/argo/argo_workflows.py | 1335 | # we cant just use hyphens with sprig. | COMMENT |
| LOW | metaflow/metadata_provider/metadata.py | 451 | # 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 | 1760 | # just failed to record metadata. We could make this logic more robust | COMMENT |
| LOW | metaflow/client/core.py | 2150 | # All tasks have the same environment info so just use the first one | 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 | 707 | # 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 | 130 | # 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 | 2614 | # 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 | 159 | CODE | |
| LOW | metaflow/plugins/kubernetes/kubernetes.py | 464 | 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 | 273 | 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 |