Repository Analysis

akfamily/akshare

AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库

9.0 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of akfamily/akshare, a Python project with 22,283 GitHub stars. SynthScan v2.0 examined 188,739 lines of code across 483 source files, recording 1866 pattern matches distributed across 11 syntactic categories. The overall adjusted score of 9.0 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).

9.0
Adjusted Score
9.0
Raw Score
100%
Time Factor
2026-08-28
Last Push
22.3K
Stars
Python
Language
188.7K
Lines of Code
483
Files
1.9K
Pattern Hits
2026-08-29
Scan Date
0.19
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

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

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 94MEDIUM 34LOW 1738

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 1866 distinct pattern matches across 11 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.

Unused Imports1108 hits · 564 pts
SeverityFileLineSnippetContext
LOWakshare/__init__.py3305CODE
LOWakshare/__init__.py3311CODE
LOWakshare/__init__.py3311CODE
LOWakshare/__init__.py3311CODE
LOWakshare/__init__.py3320CODE
LOWakshare/__init__.py3325CODE
LOWakshare/__init__.py3330CODE
LOWakshare/__init__.py3330CODE
LOWakshare/__init__.py3330CODE
LOWakshare/__init__.py3330CODE
LOWakshare/__init__.py3330CODE
LOWakshare/__init__.py3330CODE
LOWakshare/__init__.py3342CODE
LOWakshare/__init__.py3342CODE
LOWakshare/__init__.py3347CODE
LOWakshare/__init__.py3352CODE
LOWakshare/__init__.py3357CODE
LOWakshare/__init__.py3362CODE
LOWakshare/__init__.py3367CODE
LOWakshare/__init__.py3372CODE
LOWakshare/__init__.py3372CODE
LOWakshare/__init__.py3377CODE
LOWakshare/__init__.py3377CODE
LOWakshare/__init__.py3382CODE
LOWakshare/__init__.py3382CODE
LOWakshare/__init__.py3387CODE
LOWakshare/__init__.py3387CODE
LOWakshare/__init__.py3387CODE
LOWakshare/__init__.py3396CODE
LOWakshare/__init__.py3396CODE
LOWakshare/__init__.py3396CODE
LOWakshare/__init__.py3396CODE
LOWakshare/__init__.py3405CODE
LOWakshare/__init__.py3405CODE
LOWakshare/__init__.py3405CODE
LOWakshare/__init__.py3410CODE
LOWakshare/__init__.py3415CODE
LOWakshare/__init__.py3415CODE
LOWakshare/__init__.py3415CODE
LOWakshare/__init__.py3424CODE
LOWakshare/__init__.py3424CODE
LOWakshare/__init__.py3429CODE
LOWakshare/__init__.py3429CODE
LOWakshare/__init__.py3434CODE
LOWakshare/__init__.py3434CODE
LOWakshare/__init__.py3439CODE
LOWakshare/__init__.py3439CODE
LOWakshare/__init__.py3444CODE
LOWakshare/__init__.py3444CODE
LOWakshare/__init__.py3452CODE
LOWakshare/__init__.py3452CODE
LOWakshare/__init__.py3457CODE
LOWakshare/__init__.py3462CODE
LOWakshare/__init__.py3467CODE
LOWakshare/__init__.py3472CODE
LOWakshare/__init__.py3477CODE
LOWakshare/__init__.py3477CODE
LOWakshare/__init__.py3477CODE
LOWakshare/__init__.py3482CODE
LOWakshare/__init__.py3482CODE
1048 more matches not shown…
Hyper-Verbose Identifiers485 hits · 474 pts
SeverityFileLineSnippetContext
LOWtests/test_registry.py18def test_tokenize_splits_on_whitespace_and_punctuation():CODE
LOWtests/test_registry.py23def test_tokenize_drops_empty():CODE
LOWtests/test_registry.py27def test_score_exact_name_match_dominates():CODE
LOWtests/test_registry.py31def test_score_desc_hit_lower_than_name_hit():CODE
LOWtests/test_registry.py37def test_score_matches_output_column():CODE
LOWtests/test_registry.py41def test_score_all_tokens_hit_gets_bonus():CODE
LOWtests/test_registry.py47def test_score_undocumented_is_downweighted():CODE
LOWtests/test_registry.py51def test_score_no_hit_returns_zero():CODE
LOWtests/test_registry.py187def test_search_returns_dataframe_with_expected_columns():CODE
LOWtests/test_registry.py194def test_search_empty_result_keeps_columns():CODE
LOWtests/test_registry.py200def test_search_respects_limit():CODE
LOWtests/test_registry.py204def test_search_filters_by_category():CODE
LOWtests/test_registry.py209def test_search_documented_only_excludes_undocumented():CODE
LOWtests/test_registry.py215def test_interface_info_returns_full_record():CODE
LOWtests/test_registry.py221def test_interface_info_unknown_name_suggests_candidates():CODE
LOWtests/test_registry.py227def test_interface_info_deepcopy_isolates_nested_structures(monkeypatch):CODE
LOWtests/test_registry.py265def test_list_categories_counts():CODE
LOWtests/test_registry.py271def test_bigrams_single_char_returns_empty():CODE
LOWtests/test_registry.py275def test_bigrams_compresses_whitespace_before_splitting():CODE
LOWtests/test_registry.py279def test_search_exact_name_is_ranked_first():CODE
LOWtests/test_registry.py315def test_search_exact_name_survives_trailing_punctuation(suffix, monkeypatch):CODE
LOWtests/test_registry.py321def test_search_unspaced_query_recalls_via_bigram_fallback():CODE
LOWtests/test_registry.py330def test_search_negative_limit_raises():CODE
LOWtests/test_registry.py335def test_search_empty_query_returns_empty_with_columns():CODE
LOWtests/test_registry.py67def test_score_normalizes_whitespace_between_latin_and_cjk():CODE
LOWtests/test_registry.py87def test_score_does_not_match_across_adjacent_column_boundary():CODE
LOWtests/test_registry.py102def test_score_category_only_hit_is_positive():CODE
LOWtests/test_registry.py106def test_score_desc_gt_category_gt_output_when_each_hits_alone():CODE
LOWtests/test_registry_integration.py12def test_public_api_is_exported():CODE
LOWtests/test_registry_integration.py20def test_real_search_returns_callable_interfaces():CODE
LOWtests/test_registry_integration.py30def test_every_registry_entry_is_reachable():CODE
LOWtests/test_check_release.py39def test_parse_tag_extracts_version():CODE
LOWtests/test_check_release.py47def test_parse_tag_rejects_malformed(tag):CODE
LOWtests/test_check_release.py59def test_read_version_without_declaration_raises(tmp_path):CODE
LOWtests/test_check_release.py66def test_has_version_entry_requires_line_start():CODE
LOWtests/test_check_release.py74def test_collect_problems_passes_when_all_aligned(tmp_path):CODE
LOWtests/test_check_release.py79def test_collect_problems_detects_tag_version_mismatch(tmp_path):CODE
LOWtests/test_check_release.py86def test_collect_problems_detects_missing_changelog_entry(tmp_path):CODE
LOWtests/test_check_release.py92def test_collect_problems_detects_missing_init_history(tmp_path):CODE
LOWtests/test_check_release.py98def test_collect_problems_reports_every_problem_at_once(tmp_path):CODE
LOWtests/test_build_registry.py85def test_parse_table_missing_header_returns_empty():CODE
LOWtests/test_build_registry.py89def test_parse_table_pads_missing_desc_when_row_has_two_cells():CODE
LOWtests/test_build_registry.py95def test_parse_table_truncates_extra_column_when_row_has_four_cells():CODE
LOWtests/test_build_registry.py169def test_collect_doc_records_category_from_parent_dir_name(tmp_path):CODE
LOWtests/test_build_registry.py179def test_collect_doc_records_supports_fullwidth_colon(tmp_path):CODE
LOWtests/test_build_registry.py65def test_parse_table_reads_rows():STRING
LOWtests/test_build_registry.py73def test_parse_table_picks_correct_header():STRING
LOWtests/test_build_registry.py78def test_parse_table_stops_at_blank_line_not_next_table():STRING
LOWtests/test_build_registry.py314def test_serialize_has_no_timestamp_or_version():STRING
LOWtests/test_build_registry.py320def test_serialize_ends_with_single_newline():STRING
LOWtests/test_build_registry.py329def test_baseline_allows_known_gaps():STRING
LOWtests/test_build_registry.py335def test_baseline_rejects_new_undocumented():STRING
LOWtests/test_build_registry.py343def test_baseline_rejects_new_orphan():STRING
LOWtests/test_build_registry.py351def test_baseline_rejects_stale_entry():STRING
LOWtests/test_build_registry.py360def test_baseline_rejects_fixed_orphan():STRING
LOWtests/test_build_registry.py369def test_collect_all_names_includes_non_data_public_api(tmp_path):STRING
LOWtests/test_build_registry.py382def test_collect_all_names_excludes_dunder_and_third_party(tmp_path):STRING
LOWtests/test_build_registry.py391def test_collect_all_names_is_sorted_and_unique(tmp_path):STRING
LOWtests/test_build_registry.py399def test_render_all_block_is_valid_python_and_round_trips():STRING
LOWtests/test_build_registry.py409def test_replace_all_block_appends_when_marker_absent():STRING
425 more matches not shown…
Cross-Language Confusion65 hits · 315 pts
SeverityFileLineSnippetContext
HIGHakshare/utils/demjson.py239# ECMAScript has an undefined value (similar to yet distinct from null).COMMENT
HIGHakshare/utils/demjson.py240# Neither Python or strict JSON have support undefined, but to allowCOMMENT
HIGHakshare/utils/demjson.py260syntax_error = _undefined_class() # same as undefined, but has separate identityCODE
HIGHakshare/utils/demjson.py3164 "Arrays may have omitted/elided elements, e.g., [1,,3] == [1,undefined,3]",CODE
HIGHakshare/utils/demjson.py5201 obj.append(undefined)CODE
HIGHakshare/stock/cons.py101 c.push(c0);CODE
HIGHakshare/stock/cons.py102 if (c.length == 3 || i == s.length - 1)CODE
HIGHakshare/stock/cons.py106 c.push(0);CODE
HIGHakshare/stock/cons.py108 a.push((c[0] >> 2) & 63);CODE
HIGHakshare/stock/cons.py109 a.push(((c[1] >> 4) | (c[0] << 6)) & 63);CODE
HIGHakshare/stock/cons.py110 a.push(((c[1] << 4) | (c[2] >> 2)) & 63);CODE
HIGHakshare/stock/cons.py111 a.push(c[2] & 63);CODE
HIGHakshare/stock/cons.py117 a.push(0);CODE
HIGHakshare/stock/cons.py437 t = 0; !(e >= n) && (e != n - 1 || 7 & (r.c ^ t)); t++) {CODE
HIGHakshare/stock/cons.py445 u = "v" == m && r.rv ? y() : 1,CODE
HIGHakshare/stock/cons.py449 if (!(l[h[m]] = a) && (s > 1 || 241 > t) && (r.zv ? !y() : 1)) {CODE
HIGHakshare/stock/cons.py459 c.push(l)CODE
HIGHakshare/stock/cons.py665 t.push(i)CODE
HIGHakshare/stock/cons.py670 if (t = (t || 0).toString(),CODE
HIGHakshare/stock/cons.py675 n.push(Math.floor(e * Math.pow(10, -e) + .5) - 0);CODE
HIGHakshare/stock/cons.py883 t = 0; !(e >= i) && (e != i - 1 || 7 & (o.c ^ t)); t++) {CODE
HIGHakshare/stock/cons.py891 c = "v" == p && o.rv ? _() : 1,CODE
HIGHakshare/stock/cons.py895 if (!(l[d[p]] = r) && (s > 1 || 241 > t) && (o.zv ? !_() : 1)) {CODE
HIGHakshare/stock/cons.py905 u.push(l)CODE
HIGHakshare/stock/cons.py1114 t.push(n)CODE
HIGHakshare/stock/cons.py1121 if (t = (t || 0).toString(),CODE
HIGHakshare/stock/cons.py1126 i.push(Math.floor(e * Math.pow(10, -e) + .5) - 0);CODE
HIGHakshare/stock/cons.py249 for (c.push("+", "/"),CODE
HIGHakshare/stock/cons.py331 (3 == n || 4 == n) && (r.d += 5 - n);CODE
HIGHakshare/stock/cons.py337 for (n = r.wd || 62,CODE
HIGHakshare/stock/cons.py351 e && n[e - 1]++,CODE
HIGHakshare/stock/cons.py405 i.push(l),CODE
HIGHakshare/stock/cons.py406 !(e >= n) && (e != n - 1 || 63 & (r.c ^ t + 1)); t++)CODE
HIGHakshare/stock/cons.py519 l & 1 << 4 - e && i.l_l[e]++,CODE
HIGHakshare/stock/cons.py533 t.push(n)CODE
HIGHakshare/stock/cons.py548 n--)) : t.push(e),CODE
HIGHakshare/stock/cons.py563 for (t = 0; !(e >= n) && (e != n - 1 || 7 & (r.c ^ t)); t++) {CODE
HIGHakshare/stock/cons.py569 a.push(o)CODE
HIGHakshare/stock/cons.py628 !r.b_avp && a.a && (r.u_a = P(i && i.amount || 0, 0, r.p_a))CODE
HIGHakshare/stock/cons.py628 !r.b_avp && a.a && (r.u_a = P(i && i.amount || 0, 0, r.p_a))CODE
HIGHakshare/stock/cons.py641 y() ? y() ? y() ? a.d = x() : r.l_v += N() : r.b_ph && y() ? r["l_" + "et".charAt(r.b_phx &&CODE
HIGHakshare/stock/cons.py695 for (u.push("+", "/"),CODE
HIGHakshare/stock/cons.py777 (3 == i || 4 == i) && (o.d += 5 - i);CODE
HIGHakshare/stock/cons.py783 for (i = o.wd || 62,CODE
HIGHakshare/stock/cons.py797 e && i[e - 1]++,CODE
HIGHakshare/stock/cons.py851 n.push(l),CODE
HIGHakshare/stock/cons.py852 !(e >= i) && (e != i - 1 || 63 & (o.c ^ t + 1)); t++)CODE
HIGHakshare/stock/cons.py965 l & 1 << 4 - e && n.l_l[e]++,CODE
HIGHakshare/stock/cons.py979 t.push(i)CODE
HIGHakshare/stock/cons.py994 i--)) : t.push(e),CODE
HIGHakshare/stock/cons.py1010 for (t = 0; !(e >= i) && (e != i - 1 || 7 & (o.c ^ t)); t++) {CODE
HIGHakshare/stock/cons.py1016 r.push(a)CODE
HIGHakshare/stock/cons.py1077 !o.b_avp && r.a && (o.u_a = C(n && n.amount || 0, 0, o.p_a))CODE
HIGHakshare/stock/cons.py1077 !o.b_avp && r.a && (o.u_a = C(n && n.amount || 0, 0, o.p_a))CODE
HIGHakshare/stock/cons.py1090 _() ? _() ? _() ? r.d = x() : o.l_v += y() : o.b_ph && _() ? o["l_" + "et".charAt(o.b_phx &&CODE
HIGHakshare/stock_feature/stock_cyq_em.py62 yrange.push((minprice + accuracy * i).toFixed(2) / 1);CODE
HIGHakshare/stock_feature/stock_cyq_em.py77 turnoverRate = Math.min(1, eles.hsl / 100 || 0);CODE
HIGHakshare/stock_feature/stock_cyq_em.py185 if (percent > 1 || percent < 0) throw 'argument "percent" out of range';CODE
HIGHakshare/stock_feature/stock_cyq_em.py214 array.push(0);CODE
HIGHakshare/stock_feature/stock_a_pe_and_pb.py20 if (n && n.length) {CODE
5 more matches not shown…
Cross-File Repetition29 hits · 145 pts
SeverityFileLineSnippetContext
HIGHakshare/movie/movie_yien.py0get js file path :param name: file name :type name: str :param module_file: filename :type module_file: str :return: 路径 STRING
HIGHakshare/movie/video_yien.py0get js file path :param name: file name :type name: str :param module_file: filename :type module_file: str :return: 路径 STRING
HIGHakshare/movie/artist_yien.py0get js file path :param name: file name :type name: str :param module_file: filename :type module_file: str :return: 路径 STRING
HIGHakshare/movie/movie_yien.py0read the file content :param file_name: filename :type file_name: str :return: file content :rtype: strSTRING
HIGHakshare/movie/video_yien.py0read the file content :param file_name: filename :type file_name: str :return: file content :rtype: strSTRING
HIGHakshare/movie/artist_yien.py0read the file content :param file_name: filename :type file_name: str :return: file content :rtype: strSTRING
HIGHakshare/bond/bond_issue_cninfo.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock/stock_industry_pe_cninfo.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock/stock_hold_num_cninfo.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock/stock_dividend_cninfo.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock/stock_rank_forecast.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock/stock_cg_guarantee.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock/stock_hold_control_cninfo.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock/stock_ipo_summary_cninfo.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock/stock_allotment_cninfo.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock/stock_profile_cninfo.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock/stock_industry_cninfo.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock/stock_cg_equity_mortgage.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock/stock_share_changes_cninfo.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock/stock_new_cninfo.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock_feature/stock_board_industry_ths.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock_feature/stock_technology_ths.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock_feature/stock_board_concept_ths.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/stock_feature/stock_fund_flow.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/fund/fund_report_cninfo.py0获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: strSTRING
HIGHakshare/economic/macro_china_hk.py0东方财富-数据中心-经济数据一览-宏观经济-德国-核心代码 https://data.eastmoney.com/cjsj/foreign_1_0.html :param symbol: 代码 :type symbol: str :retuSTRING
HIGHakshare/economic/macro_japan.py0东方财富-数据中心-经济数据一览-宏观经济-德国-核心代码 https://data.eastmoney.com/cjsj/foreign_1_0.html :param symbol: 代码 :type symbol: str :retuSTRING
HIGHakshare/economic/macro_swiss.py0东方财富-数据中心-经济数据一览-宏观经济-德国-核心代码 https://data.eastmoney.com/cjsj/foreign_1_0.html :param symbol: 代码 :type symbol: str :retuSTRING
HIGHakshare/economic/macro_germany.py0东方财富-数据中心-经济数据一览-宏观经济-德国-核心代码 https://data.eastmoney.com/cjsj/foreign_1_0.html :param symbol: 代码 :type symbol: str :retuSTRING
Deep Nesting102 hits · 86 pts
SeverityFileLineSnippetContext
LOWscripts/check_punctuation.py326CODE
LOWscripts/check_punctuation.py419CODE
LOWakshare/request.py10CODE
LOWakshare/request.py65CODE
LOWakshare/stock_fundamental/stock_profit_forecast_ths.py17CODE
LOWakshare/stock_fundamental/stock_notice.py17CODE
LOW…re/stock_fundamental/stock_profit_forecast_hk_etnet.py15CODE
LOWakshare/stock_fundamental/stock_finance_ths.py194CODE
LOWakshare/stock_fundamental/stock_finance_ths.py291CODE
LOWakshare/stock_fundamental/stock_finance_ths.py380CODE
LOWakshare/stock_fundamental/stock_finance_ths.py477CODE
LOWakshare/futures/futures_comm_qihuo.py172CODE
LOWakshare/futures/futures_daily_bar.py24CODE
LOWakshare/futures/futures_daily_bar.py341CODE
LOWakshare/futures/futures_daily_bar.py637CODE
LOWakshare/futures/futures_warehouse_receipt.py104CODE
LOWakshare/futures/futures_basis.py79CODE
LOWakshare/futures/futures_basis.py146CODE
LOWakshare/futures/futures_roll_yield.py74CODE
LOWakshare/futures/requests_fun.py16CODE
LOWakshare/futures/requests_fun.py53CODE
LOWakshare/futures/cot.py110CODE
LOWakshare/futures/cot.py566CODE
LOWakshare/futures/cot.py818CODE
LOWakshare/futures/cot.py1052CODE
LOWakshare/futures/receipt.py82CODE
LOWakshare/futures/receipt.py386CODE
LOWakshare/futures/receipt.py571CODE
LOWakshare/futures/futures_settle.py59CODE
LOWakshare/futures/futures_settle.py481CODE
LOWakshare/futures/cons.py522CODE
LOWakshare/bank/bank_cbirc_2020.py111CODE
LOWakshare/bond/bond_zh_cov.py542CODE
LOWakshare/economic/macro_china_nbs.py300CODE
LOWakshare/economic/macro_china_nbs.py385CODE
LOWakshare/economic/macro_china_nbs.py566CODE
LOWakshare/economic/macro_china.py318CODE
LOWakshare/other/other_car_cpca.py13CODE
LOWakshare/other/other_car_cpca.py163CODE
LOWakshare/other/other_car_cpca.py276CODE
LOWakshare/other/other_car_cpca.py412CODE
LOWakshare/other/other_car_cpca.py528CODE
LOWakshare/other/other_car_cpca.py685CODE
LOWakshare/other/other_car_cpca.py722CODE
LOWakshare/utils/demjson.py79CODE
LOWakshare/utils/demjson.py275CODE
LOWakshare/utils/demjson.py3068CODE
LOWakshare/utils/demjson.py6182CODE
LOWakshare/utils/demjson.py718CODE
LOWakshare/utils/demjson.py853CODE
LOWakshare/utils/demjson.py943CODE
LOWakshare/utils/demjson.py1270CODE
LOWakshare/utils/demjson.py1516CODE
LOWakshare/utils/demjson.py2234CODE
LOWakshare/utils/demjson.py2715CODE
LOWakshare/utils/demjson.py2835CODE
LOWakshare/utils/demjson.py3265CODE
LOWakshare/utils/demjson.py3456CODE
LOWakshare/utils/demjson.py3521CODE
LOWakshare/utils/demjson.py3647CODE
42 more matches not shown…
Decorative Section Separators30 hits · 77 pts
SeverityFileLineSnippetContext
MEDIUMakshare/other/other_taptap.py15# ============================================================COMMENT
MEDIUMakshare/other/other_taptap.py17# ============================================================COMMENT
MEDIUMakshare/utils/demjson.py236# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py784# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py786# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py1042# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py1044# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py43# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py62# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py264# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py681# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py738# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py1590# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py1592# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py1753# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py1755# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py2182# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py2184# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py2400# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py2402# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py2453# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py2455# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py2602# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py2604# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py2869# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py2871# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py3706# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py3708# ----------------------------------------------------------------------COMMENT
MEDIUMakshare/utils/demjson.py6106# ------------------------------COMMENT
MEDIUMakshare/utils/demjson.py6408# ======================================================================STRING
Excessive Try-Catch Wrapping28 hits · 27 pts
SeverityFileLineSnippetContext
LOWdocs/registry.md154except Exception as e:CODE
LOWakshare/stock_fundamental/stock_ipo_review.py66 except Exception as e:CODE
LOWakshare/stock_fundamental/stock_finance_sina.py603 except Exception as e:CODE
LOWakshare/stock_fundamental/stock_finance_sina.py673 except Exception as e:CODE
LOWakshare/stock_fundamental/stock_finance_sina.py745 except Exception as e:CODE
LOWakshare/stock_fundamental/stock_ipo_tutor.py68 except Exception as e:CODE
LOWakshare/futures/futures_basis.py132 except Exception as e: # noqa: E722CODE
MEDIUMakshare/economic/macro_bank.py77 print(f"Error fetching data: {e}")CODE
MEDIUMakshare/utils/demjson.py1797def restore_position(self):CODE
LOWakshare/utils/demjson.py1838 except Exception as err:CODE
LOWakshare/utils/demjson.py2657 except Exception as err:CODE
LOWakshare/utils/demjson.py3954 except Exception as err:CODE
LOWakshare/utils/demjson.py5784 except Exception:CODE
LOWakshare/utils/demjson.py6599 except Exception as err:CODE
LOWakshare/utils/demjson.py6378 except Exception:STRING
LOWakshare/utils/demjson.py6396 except Exception:STRING
LOWakshare/news/news_baidu.py124 except Exception as e:CODE
LOWakshare/stock/stock_us_sina.py174 except Exception:CODE
LOWakshare/stock/stock_us_sina.py178 except Exception as e:CODE
LOWakshare/stock/stock_us_sina.py183 except Exception:CODE
LOWakshare/stock/stock_us_sina.py187 except Exception as e:CODE
LOWakshare/stock/stock_zh_kcb_sina.py156 except Exception:CODE
LOWakshare/stock/stock_zh_kcb_sina.py160 except Exception as e:CODE
LOWakshare/stock/stock_zh_kcb_sina.py197 except Exception:CODE
LOWakshare/stock/stock_zh_kcb_sina.py201 except Exception as e:CODE
LOWakshare/stock/stock_zh_kcb_sina.py228 except Exception:CODE
LOWakshare/stock/stock_zh_kcb_sina.py232 except Exception as e:CODE
LOWakshare/fund/fund_fee_em.py55 except Exception as e:CODE
Over-Commented Block9 hits · 9 pts
SeverityFileLineSnippetContext
LOWpyproject.toml61COMMENT
LOWpyproject.toml181COMMENT
LOWdocs/requirements.txt1# 文档构建依赖的唯一声明处,由 .readthedocs.yaml 的 python.install 直接引用。COMMENT
LOWdocs/conf.py61# Markdown 表格,而 myst_parser 原生渲染 GFM 表格(本文档有 16000+ 行表格)。COMMENT
LOWdocs/conf.py81# The theme to use for HTML and HTML Help pages. See the documentation forCOMMENT
LOWscripts/build_registry.py101 record = parse_segment(text[match.end() : end])COMMENT
LOW.github/dependabot.yml1# Dependabot 配置COMMENT
LOWakshare/cal/rv.py121 # yang_zhang_rv formula is give as:COMMENT
LOWakshare/fund/fund_etf_em.py341 :rtype: pandas.DataFrameCOMMENT
AI Structural Patterns7 hits · 6 pts
SeverityFileLineSnippetContext
LOWakshare/movie/movie_yien.py77CODE
LOWakshare/movie/video_yien.py62CODE
LOWakshare/movie/artist_yien.py62CODE
LOWakshare/futures/cot.py405CODE
LOWakshare/bond/bond_info_cm.py65CODE
LOWakshare/utils/demjson.py6179CODE
LOWakshare/utils/demjson.py6565CODE
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWakshare/__init__.py5993__all__ = [CODE
Self-Referential Comments2 hits · 1 pts
SeverityFileLineSnippetContext
MEDIUMakshare/utils/demjson.py6062 """This method is used to encode user-defined class objects.STRING
MEDIUMakshare/utils/demjson.py6287 # Initialize the JSON objectSTRING