Repository Analysis

ml-explore/mlx-lm

Run LLMs with MLX

6.4 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of ml-explore/mlx-lm, a Python project with 6,293 GitHub stars. SynthScan v2.0 examined 58,053 lines of code across 210 source files, recording 343 pattern matches distributed across 14 syntactic categories. The overall adjusted score of 6.4 places this repository in the Low 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).

6.4
Adjusted Score
6.4
Raw Score
100%
Time Factor
2026-07-11
Last Push
6.3K
Stars
Python
Language
58.1K
Lines of Code
210
Files
343
Pattern Hits
2026-07-14
Scan Date
0.01
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

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.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

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.

CRITICAL 0HIGH 3MEDIUM 9LOW 331

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 343 distinct pattern matches across 14 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.

Hyper-Verbose Identifiers98 hits · 96 pts
SeverityFileLineSnippetContext
LOWmlx_lm/server.py1178 def validate_model_parameters(self):CODE
LOWmlx_lm/server.py1520 def completion_usage_response(CODE
LOWmlx_lm/generate.py464def speculative_generate_step(CODE
LOWmlx_lm/convert.py20def mixed_quant_predicate_builder(CODE
LOWmlx_lm/utils.py1019def does_model_support_input_embeddings(model: nn.Module) -> bool:CODE
LOWmlx_lm/sample_utils.py300 def repetition_penalty_processor(tokens, logits):CODE
LOWmlx_lm/sample_utils.py332 def presence_penalty_processor(tokens, logits):CODE
LOWmlx_lm/sample_utils.py361 def frequency_penalty_processor(tokens, logits):CODE
LOWmlx_lm/tool_parsers/minimax_m2.py27def _extract_types_from_schema(schema: Any) -> list[str]:CODE
LOWmlx_lm/tool_parsers/minimax_m2.py88def _convert_param_value_with_types(value: str, param_types: list[str]) -> Any:CODE
LOWmlx_lm/tool_parsers/minimax_m2.py152def _get_param_types_from_config(param_name: str, param_config: dict) -> list[str]:CODE
LOWmlx_lm/tool_parsers/glm47.py162def _parse_plain_text_tool_call(text: str, tools: list[Any] | None):CODE
LOWmlx_lm/tuner/utils.py160def print_trainable_parameters(model):CODE
LOWmlx_lm/models/rope_utils.py152 def yarn_find_correction_range():CODE
LOWmlx_lm/models/gemma3n.py226 def compute_router_modalities(self, x: mx.array) -> mx.array:CODE
LOWmlx_lm/models/gemma4_text.py484 def _project_per_layer_inputs(CODE
LOWmlx_lm/models/qwen3_next.py214 def fix_query_key_value_ordering(CODE
LOWmlx_lm/models/deepseek_v2.py56def yarn_find_correction_range(CODE
LOWmlx_lm/models/base.py64def quantized_scaled_dot_product_attention(CODE
LOWmlx_lm/models/base.py110def scaled_dot_product_attention(CODE
LOWmlx_lm/models/nemotron-nas.py85def _ffn_mult_to_intermediate_size(ffn_mult: float, n_embd: int) -> int:CODE
LOWmlx_lm/chat_templates/deepseek_v32.py84def tool_calls_from_openai_format(tool_calls):STRING
LOWtests/test_tuner_utils.py22 def test_quantized_print_trainable_parameters(self):CODE
LOWtests/test_tuner_utils.py59 def test_print_trainable_parameters(self):CODE
LOWtests/test_utils.py98 def test_load_model_with_custom_get_classes(self):CODE
LOWtests/test_utils.py233 def test_model_file_blocked_by_default(self):STRING
LOWtests/test_utils.py241 def test_model_file_loads_with_trust_remote_code(self):CODE
LOWtests/test_utils.py249 def test_normal_model_unaffected_by_default(self):CODE
LOWtests/test_datsets.py64 def test_completions_mask_prompt(self):CODE
LOWtests/test_generate.py37 def test_generate_with_logit_bias(self):CODE
LOWtests/test_generate.py49 def test_stream_generate_max_tokens(self):CODE
LOWtests/test_generate.py66 def test_generate_with_processor(self):CODE
LOWtests/test_generate.py86 def test_stream_generate_speculative(self):CODE
LOWtests/test_generate.py119 def test_stream_generate_input_embeddings(self):CODE
LOWtests/test_generate.py143 def test_stream_generate_input_embeddings_prefill(self):CODE
LOWtests/test_generate.py182 def test_batch_matches_single(self):CODE
LOWtests/test_generate.py267 def test_batch_unique_max_toks(self):CODE
LOWtests/test_generate.py312 def test_batch_sliding_window(self):CODE
LOWtests/test_generate.py362 def test_batch_generate_with_logits_processors(self):CODE
LOWtests/test_generate.py405 def test_batch_generate_processor_tokens_match_prompt_on_first_step(self):CODE
LOWtests/test_generate.py424 def test_batch_generate_function_with_logits_processors(self):CODE
LOWtests/test_generate.py441 def test_batch_generate_with_samplers(self):CODE
LOWtests/test_generate.py473 def test_batch_generate_with_stop_matchers(self):CODE
LOWtests/test_generate.py505 def test_batch_continued_generation(self):CODE
LOWtests/test_generate.py585 def _continued_generation_test_helper(self, model):CODE
LOWtests/test_generate.py643 def test_batch_continued_generation_ssm(self):CODE
LOWtests/test_generate.py671 def test_batch_continued_generation_gated_delta(self):CODE
LOWtests/test_generate.py704 def test_extend_cache_with_empty(self):CODE
LOWtests/test_generate.py724 def test_remove_prompt_batch_updates_currently_processing(self):CODE
LOWtests/test_generate.py755 def test_batch_max_kv_size_creates_rotating_cache(self):CODE
LOWtests/test_generate.py772 def test_batch_max_kv_size_limits_cache_growth(self):CODE
LOWtests/test_generate.py791 def test_batch_max_kv_size_none_creates_regular_cache(self):CODE
LOWtests/test_generate.py806 def test_batch_generate_return_logprobs(self):CODE
LOWtests/test_generate.py835 def test_batch_generate_no_logprobs_by_default(self):CODE
LOWtests/test_sample_utils.py150 def test_make_logits_processors(self):CODE
LOWtests/test_evaluate.py24 def test_loglikelihood_rolling_processes_all_inputs(self):CODE
LOWtests/test_prompt_cache.py64 def test_save_load_rotating_cache(self):CODE
LOWtests/test_prompt_cache.py101 def test_save_load_mixed_cache(self):CODE
LOWtests/test_prompt_cache.py135 def test_save_load_cache_list(self):CODE
LOWtests/test_prompt_cache.py170 def test_save_load_arrays_cache(self):CODE
38 more matches not shown…
Unused Imports73 hits · 73 pts
SeverityFileLineSnippetContext
LOWmlx_lm/server.py18CODE
LOWmlx_lm/server.py18CODE
LOWmlx_lm/benchmark.py10CODE
LOWmlx_lm/tokenizer_utils.py3CODE
LOWmlx_lm/__init__.py5CODE
LOWmlx_lm/__init__.py9CODE
LOWmlx_lm/__init__.py10CODE
LOWmlx_lm/__init__.py10CODE
LOWmlx_lm/__init__.py10CODE
LOWmlx_lm/__init__.py11CODE
LOWmlx_lm/share.py15CODE
LOWmlx_lm/lora.py6CODE
LOWmlx_lm/tool_parsers/pythonic.py4CODE
LOWmlx_lm/tool_parsers/pythonic.py4CODE
LOWmlx_lm/quant/dynamic_quant.py10CODE
LOWmlx_lm/quant/awq.py6CODE
LOWmlx_lm/quant/awq.py8CODE
LOWmlx_lm/quant/gptq.py17CODE
LOWmlx_lm/tuner/__init__.py1CODE
LOWmlx_lm/tuner/__init__.py1CODE
LOWmlx_lm/tuner/__init__.py1CODE
LOWmlx_lm/tuner/__init__.py2CODE
LOWmlx_lm/models/phi3.py4CODE
LOWmlx_lm/models/apertus.py4CODE
LOWmlx_lm/models/bitnet.py4CODE
LOWmlx_lm/models/glm.py4CODE
LOWmlx_lm/models/glm.py4CODE
LOWmlx_lm/models/glm.py11CODE
LOWmlx_lm/models/openelm.py4CODE
LOWmlx_lm/models/bitlinear_layers.py5CODE
LOWmlx_lm/models/plamo2.py3CODE
LOWmlx_lm/models/solar_open.py7CODE
LOWmlx_lm/models/afm7.py7CODE
LOWmlx_lm/models/afm7.py7CODE
LOWmlx_lm/models/glm4_moe.py3CODE
LOWmlx_lm/models/glm4_moe.py5CODE
LOWmlx_lm/models/minimax.py5CODE
LOWmlx_lm/models/mellum.py9CODE
LOWmlx_lm/models/longcat_flash_ngram.py4CODE
LOWmlx_lm/models/lfm2-vl.py11CODE
LOWmlx_lm/models/lfm2-vl.py11CODE
LOWmlx_lm/models/nemotron_h.py4CODE
LOWmlx_lm/models/gemma4.py8CODE
LOWmlx_lm/models/gemma4.py8CODE
LOWmlx_lm/models/phixtral.py6CODE
LOWmlx_lm/models/mimo_v2_flash.py3CODE
LOWmlx_lm/models/mimo_v2_flash.py5CODE
LOWmlx_lm/models/mimo_v2_flash.py6CODE
LOWmlx_lm/models/glm_moe_dsa.py4CODE
LOWmlx_lm/models/dots1.py4CODE
LOWmlx_lm/models/pipeline.py3CODE
LOWmlx_lm/models/phimoe.py2CODE
LOWmlx_lm/models/gemma4_text.py11CODE
LOWmlx_lm/models/qwen3_next.py3CODE
LOWmlx_lm/models/qwen3_next.py7CODE
LOWmlx_lm/models/deepseek_v3.py5CODE
LOWmlx_lm/models/olmo.py14CODE
LOWmlx_lm/models/base.py5CODE
LOWmlx_lm/models/switch_layers.py4CODE
LOWmlx_lm/chat_templates/deepseek_v32.py5CODE
13 more matches not shown…
AI Structural Patterns72 hits · 72 pts
SeverityFileLineSnippetContext
LOWmlx_lm/server.py1208CODE
LOWmlx_lm/generate.py298CODE
LOWmlx_lm/generate.py464CODE
LOWmlx_lm/generate.py1576CODE
LOWmlx_lm/convert.py85CODE
LOWmlx_lm/sample_utils.py10CODE
LOWmlx_lm/tuner/dora.py210CODE
LOWmlx_lm/tuner/dora.py224CODE
LOWmlx_lm/tuner/lora.py280CODE
LOWmlx_lm/models/granitemoe.py152CODE
LOWmlx_lm/models/olmo3.py163CODE
LOWmlx_lm/models/lille-130m.py108CODE
LOWmlx_lm/models/rope_utils.py129CODE
LOWmlx_lm/models/phi3.py156CODE
LOWmlx_lm/models/apertus.py134CODE
LOWmlx_lm/models/bitnet.py93CODE
LOWmlx_lm/models/bitnet.py143CODE
LOWmlx_lm/models/glm.py129CODE
LOWmlx_lm/models/openelm.py162CODE
LOWmlx_lm/models/dbrx.py186CODE
LOWmlx_lm/models/llama4.py205CODE
LOWmlx_lm/models/gemma3_text.py161CODE
LOWmlx_lm/models/afm7.py303CODE
LOWmlx_lm/models/afm7.py327CODE
LOWmlx_lm/models/afm7.py383CODE
LOWmlx_lm/models/gemma3n.py376CODE
LOWmlx_lm/models/hunyuan_v1_dense.py174CODE
LOWmlx_lm/models/olmo2.py147CODE
LOWmlx_lm/models/gpt2.py108CODE
LOWmlx_lm/models/gpt2.py168CODE
LOWmlx_lm/models/internlm2.py181CODE
LOWmlx_lm/models/mimo.py120CODE
LOWmlx_lm/models/lfm2_moe.py274CODE
LOWmlx_lm/models/Klear.py183CODE
LOWmlx_lm/models/helium.py121CODE
LOWmlx_lm/models/internlm3.py181CODE
LOWmlx_lm/models/qwen3_moe.py171CODE
LOWmlx_lm/models/starcoder2.py109CODE
LOWmlx_lm/models/minicpm.py141CODE
LOWmlx_lm/models/nemotron.py160CODE
LOWmlx_lm/models/phi3small.py238CODE
LOWmlx_lm/models/seed_oss.py125CODE
LOWmlx_lm/models/llama.py148CODE
LOWmlx_lm/models/jamba.py281CODE
LOWmlx_lm/models/qwen3_5.py241CODE
LOWmlx_lm/models/gemma2.py149CODE
LOWmlx_lm/models/gemma2.py201CODE
LOWmlx_lm/models/cohere2.py199CODE
LOWmlx_lm/models/lfm2.py234CODE
LOWmlx_lm/models/deepseek.py197CODE
LOWmlx_lm/models/minicpm3.py190CODE
LOWmlx_lm/models/youtu_llm.py179CODE
LOWmlx_lm/models/gemma.py122CODE
LOWmlx_lm/models/gemma.py171CODE
LOWmlx_lm/models/gpt_bigcode.py123CODE
LOWmlx_lm/models/qwen3_next.py389CODE
LOWmlx_lm/models/ministral3.py153CODE
LOWmlx_lm/models/qwen3.py126CODE
LOWmlx_lm/models/exaone.py114CODE
LOWmlx_lm/models/gpt_neox.py175CODE
12 more matches not shown…
Deep Nesting62 hits · 62 pts
SeverityFileLineSnippetContext
LOWmlx_lm/server.py117CODE
LOWmlx_lm/server.py624CODE
LOWmlx_lm/server.py868CODE
LOWmlx_lm/server.py1317CODE
LOWmlx_lm/generate.py221CODE
LOWmlx_lm/generate.py464CODE
LOWmlx_lm/generate.py829CODE
LOWmlx_lm/generate.py1971CODE
LOWmlx_lm/generate.py835CODE
LOWmlx_lm/tokenizer_utils.py546CODE
LOWmlx_lm/tokenizer_utils.py576CODE
LOWmlx_lm/convert.py20CODE
LOWmlx_lm/utils.py295CODE
LOWmlx_lm/utils.py893CODE
LOWmlx_lm/share.py122CODE
LOWmlx_lm/share.py174CODE
LOWmlx_lm/share.py211CODE
LOWmlx_lm/manage.py38CODE
LOWmlx_lm/lora.py224CODE
LOWmlx_lm/tool_parsers/qwen3_coder.py36CODE
LOWmlx_lm/tool_parsers/minimax_m2.py27CODE
LOWmlx_lm/tool_parsers/minimax_m2.py88CODE
LOWmlx_lm/tool_parsers/minimax_m2.py159CODE
LOWmlx_lm/quant/awq.py247CODE
LOWmlx_lm/tuner/datasets.py177CODE
LOWmlx_lm/tuner/trainer.py219CODE
LOWmlx_lm/models/rope_utils.py235CODE
LOWmlx_lm/models/hunyuan.py294CODE
LOWmlx_lm/models/kimi_linear.py492CODE
LOWmlx_lm/models/gemma3n.py380CODE
LOWmlx_lm/models/glm4_moe.py317CODE
LOWmlx_lm/models/bailing_moe.py346CODE
LOWmlx_lm/models/deepseek_v32.py495CODE
LOWmlx_lm/models/olmoe.py197CODE
LOWmlx_lm/models/bailing_moe_linear.py531CODE
LOWmlx_lm/models/rwkv7.py163CODE
LOWmlx_lm/models/nemotron_h.py428CODE
LOWmlx_lm/models/cache.py1578CODE
LOWmlx_lm/models/phixtral.py185CODE
LOWmlx_lm/models/mimo_v2_flash.py321CODE
LOWmlx_lm/models/exaone_moe.py329CODE
LOWmlx_lm/models/jamba.py347CODE
LOWmlx_lm/models/dots1.py292CODE
LOWmlx_lm/models/step3p5.py406CODE
LOWmlx_lm/models/glm4_moe_lite.py381CODE
LOWmlx_lm/models/deepseek.py244CODE
LOWmlx_lm/models/phimoe.py188CODE
LOWmlx_lm/models/gemma4_text.py503CODE
LOWmlx_lm/models/gemma4_text.py610CODE
LOWmlx_lm/models/gpt_oss.py243CODE
LOWmlx_lm/models/afmoe.py354CODE
LOWmlx_lm/models/longcat_flash.py391CODE
LOWmlx_lm/models/ministral3.py267CODE
LOWmlx_lm/models/deepseek_v3.py380CODE
LOWmlx_lm/models/deepseek_v2.py430CODE
LOWmlx_lm/models/mixtral.py205CODE
LOWmlx_lm/models/qwen2_moe.py221CODE
LOWmlx_lm/models/falcon_h1.py459CODE
LOWmlx_lm/models/kimi_vl.py84CODE
LOWmlx_lm/chat_templates/deepseek_v32.py151CODE
2 more matches not shown…
Self-Referential Comments8 hits · 24 pts
SeverityFileLineSnippetContext
MEDIUMmlx_lm/server.py871 # Define the progress callbackCOMMENT
MEDIUMmlx_lm/server.py1149 # Create the completion requestCOMMENT
MEDIUMmlx_lm/server.py1366 # Create the token generatorCOMMENT
MEDIUMmlx_lm/server.py1639 # Create a list of available modelsCOMMENT
MEDIUMmlx_lm/generate.py361 # Create the KV cache for generationCOMMENT
MEDIUMmlx_lm/generate.py512 # Create the KV cache for generationCOMMENT
MEDIUMmlx_lm/models/cache.py171 # Create an instance of cls without calling __init__COMMENT
MEDIUMmlx_lm/models/minicpm3.py128 # Create the full query and key tensors by combining the partsCOMMENT
Excessive Try-Catch Wrapping15 hits · 16 pts
SeverityFileLineSnippetContext
LOWmlx_lm/server.py677 except Exception as e:CODE
LOWmlx_lm/server.py745 except Exception as e:CODE
LOWmlx_lm/server.py972 except Exception as e:CODE
LOWmlx_lm/server.py1373 except Exception as e:CODE
LOWmlx_lm/share.py260 except Exception as e:CODE
LOWmlx_lm/tool_parsers/longcat.py40 except Exception:CODE
LOWmlx_lm/tool_parsers/longcat.py45 except Exception:CODE
LOWmlx_lm/tool_parsers/kimi_k2.py30 except Exception:CODE
LOWmlx_lm/tool_parsers/kimi_k2.py35 except Exception:CODE
LOWmlx_lm/tool_parsers/glm47.py45 except Exception:CODE
LOWmlx_lm/tool_parsers/glm47.py50 except Exception:CODE
LOWmlx_lm/tool_parsers/glm47.py81 except Exception:CODE
LOWtests/test_server.py564 except Exception as e:CODE
MEDIUMbenchmarks/server_benchmark.py145 print(f"Error {response.status}: {error_body}")CODE
LOWbenchmarks/server_benchmark.py167 except Exception as e:CODE
Docstring Block Structure2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHmlx_lm/utils.py303 Load and initialize the model from a given path. Args: model_path (Path): The path to load the model fSTRING
HIGHmlx_lm/utils.py492 Load the model and tokenizer from a given path or a huggingface repository. Args: path_or_hf_repo (PatSTRING
Redundant / Tautological Comments6 hits · 9 pts
SeverityFileLineSnippetContext
LOWmlx_lm/generate.py1861 # Check if we have sequences and add them to the prompt batchCOMMENT
LOWmlx_lm/perplexity.py179 # Print resultsCOMMENT
LOWmlx_lm/share.py247 # Check if any node has the dataCOMMENT
LOWmlx_lm/models/cache.py1600 # Check if we found a prefix at any pointCOMMENT
LOWmlx_lm/models/granitemoehybrid.py243 # Check if RoPE should be used based on position_embedding_typeCOMMENT
LOWmlx_lm/models/falcon_h1.py460 # Check if needs sanitizationCOMMENT
Cross-Language Confusion1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHmlx_lm/models/cache.py1717 self._lru.push(model, tokens, cache_type)CODE
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippetContext
LOWmlx_lm/examples/lora_config.yaml1# The path to the local model directory or Hugging Face repo.COMMENT
LOWmlx_lm/examples/lora_config.yaml81 dropout: 0.0COMMENT
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOWmlx_lm/models/minimax.py308 # Step 2: Handle MoE expert weights restructuringCOMMENT
Structural Annotation Overuse1 hit · 2 pts
SeverityFileLineSnippetContext
LOWmlx_lm/models/minimax.py308 # Step 2: Handle MoE expert weights restructuringCOMMENT
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
LOWmlx_lm/examples/tool_use.py15# An example tool, make sure to include a docstring and type hintsCOMMENT
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWmlx_lm/__init__.py13__all__ = [CODE