AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库
This report presents the forensic synthetic code analysis of akfamily/akshare, a Python project with 21,278 GitHub stars. SynthScan v2.0 examined 182,622 lines of code across 469 source files, recording 1765 pattern matches distributed across 10 syntactic categories. The overall adjusted score of 8.8 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).
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.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1765 distinct pattern matches across 10 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | akshare/__init__.py | 3275 | CODE | |
| LOW | akshare/__init__.py | 3281 | CODE | |
| LOW | akshare/__init__.py | 3286 | CODE | |
| LOW | akshare/__init__.py | 3286 | CODE | |
| LOW | akshare/__init__.py | 3286 | CODE | |
| LOW | akshare/__init__.py | 3286 | CODE | |
| LOW | akshare/__init__.py | 3286 | CODE | |
| LOW | akshare/__init__.py | 3286 | CODE | |
| LOW | akshare/__init__.py | 3298 | CODE | |
| LOW | akshare/__init__.py | 3298 | CODE | |
| LOW | akshare/__init__.py | 3303 | CODE | |
| LOW | akshare/__init__.py | 3308 | CODE | |
| LOW | akshare/__init__.py | 3313 | CODE | |
| LOW | akshare/__init__.py | 3318 | CODE | |
| LOW | akshare/__init__.py | 3323 | CODE | |
| LOW | akshare/__init__.py | 3328 | CODE | |
| LOW | akshare/__init__.py | 3328 | CODE | |
| LOW | akshare/__init__.py | 3333 | CODE | |
| LOW | akshare/__init__.py | 3333 | CODE | |
| LOW | akshare/__init__.py | 3338 | CODE | |
| LOW | akshare/__init__.py | 3338 | CODE | |
| LOW | akshare/__init__.py | 3343 | CODE | |
| LOW | akshare/__init__.py | 3343 | CODE | |
| LOW | akshare/__init__.py | 3343 | CODE | |
| LOW | akshare/__init__.py | 3352 | CODE | |
| LOW | akshare/__init__.py | 3352 | CODE | |
| LOW | akshare/__init__.py | 3352 | CODE | |
| LOW | akshare/__init__.py | 3352 | CODE | |
| LOW | akshare/__init__.py | 3361 | CODE | |
| LOW | akshare/__init__.py | 3361 | CODE | |
| LOW | akshare/__init__.py | 3361 | CODE | |
| LOW | akshare/__init__.py | 3366 | CODE | |
| LOW | akshare/__init__.py | 3371 | CODE | |
| LOW | akshare/__init__.py | 3371 | CODE | |
| LOW | akshare/__init__.py | 3371 | CODE | |
| LOW | akshare/__init__.py | 3380 | CODE | |
| LOW | akshare/__init__.py | 3380 | CODE | |
| LOW | akshare/__init__.py | 3385 | CODE | |
| LOW | akshare/__init__.py | 3385 | CODE | |
| LOW | akshare/__init__.py | 3390 | CODE | |
| LOW | akshare/__init__.py | 3390 | CODE | |
| LOW | akshare/__init__.py | 3395 | CODE | |
| LOW | akshare/__init__.py | 3395 | CODE | |
| LOW | akshare/__init__.py | 3400 | CODE | |
| LOW | akshare/__init__.py | 3400 | CODE | |
| LOW | akshare/__init__.py | 3408 | CODE | |
| LOW | akshare/__init__.py | 3408 | CODE | |
| LOW | akshare/__init__.py | 3413 | CODE | |
| LOW | akshare/__init__.py | 3418 | CODE | |
| LOW | akshare/__init__.py | 3423 | CODE | |
| LOW | akshare/__init__.py | 3428 | CODE | |
| LOW | akshare/__init__.py | 3433 | CODE | |
| LOW | akshare/__init__.py | 3433 | CODE | |
| LOW | akshare/__init__.py | 3433 | CODE | |
| LOW | akshare/__init__.py | 3438 | CODE | |
| LOW | akshare/__init__.py | 3438 | CODE | |
| LOW | akshare/__init__.py | 3438 | CODE | |
| LOW | akshare/__init__.py | 3443 | CODE | |
| LOW | akshare/__init__.py | 3448 | CODE | |
| LOW | akshare/__init__.py | 3448 | CODE | |
| 1040 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | akshare/request.py | 10 | def make_request_with_retry_json( | CODE |
| LOW | akshare/request.py | 65 | def make_request_with_retry_text( | CODE |
| LOW | akshare/stock_fundamental/stock_basic_info_xq.py | 15 | def stock_individual_basic_info_xq( | CODE |
| LOW | akshare/stock_fundamental/stock_basic_info_xq.py | 46 | def stock_individual_basic_info_us_xq( | CODE |
| LOW | akshare/stock_fundamental/stock_basic_info_xq.py | 77 | def stock_individual_basic_info_hk_xq( | CODE |
| LOW | akshare/stock_fundamental/stock_hold.py | 58 | def stock_institute_hold_detail( | CODE |
| LOW | akshare/stock_fundamental/stock_finance_hk_em.py | 13 | def stock_financial_hk_report_em( | CODE |
| LOW | akshare/stock_fundamental/stock_finance_hk_em.py | 108 | def stock_financial_hk_analysis_indicator_em( | CODE |
| LOW | akshare/stock_fundamental/stock_profit_forecast_ths.py | 17 | def stock_profit_forecast_ths( | CODE |
| LOW | akshare/stock_fundamental/stock_restricted_em.py | 14 | def stock_restricted_release_summary_em( | CODE |
| LOW | akshare/stock_fundamental/stock_restricted_em.py | 106 | def stock_restricted_release_detail_em( | CODE |
| LOW | akshare/stock_fundamental/stock_restricted_em.py | 209 | def stock_restricted_release_queue_em(symbol: str = "600000") -> pd.DataFrame: | CODE |
| LOW | akshare/stock_fundamental/stock_restricted_em.py | 301 | def stock_restricted_release_stockholder_em( | CODE |
| LOW | akshare/stock_fundamental/stock_notice.py | 151 | def stock_individual_notice_report( | CODE |
| LOW | …re/stock_fundamental/stock_profit_forecast_hk_etnet.py | 15 | def stock_hk_profit_forecast_et( | CODE |
| LOW | akshare/stock_fundamental/stock_recommend.py | 14 | def stock_institute_recommend(symbol: str = "投资评级选股") -> pd.DataFrame: | CODE |
| LOW | akshare/stock_fundamental/stock_recommend.py | 76 | def stock_institute_recommend_detail(symbol: str = "000001") -> pd.DataFrame: | CODE |
| LOW | akshare/stock_fundamental/stock_finance_ths.py | 18 | def stock_financial_abstract_ths( | CODE |
| LOW | akshare/stock_fundamental/stock_finance_ths.py | 92 | def stock_financial_benefit_ths( | CODE |
| LOW | akshare/stock_fundamental/stock_finance_ths.py | 194 | def stock_financial_abstract_new_ths( | CODE |
| LOW | akshare/stock_fundamental/stock_finance_ths.py | 291 | def stock_financial_debt_new_ths( | CODE |
| LOW | akshare/stock_fundamental/stock_finance_ths.py | 380 | def stock_financial_benefit_new_ths( | CODE |
| LOW | akshare/stock_fundamental/stock_finance_ths.py | 477 | def stock_financial_cash_new_ths( | CODE |
| LOW | akshare/stock_fundamental/stock_finance_ths.py | 574 | def stock_management_change_ths(symbol: str = "688981") -> pd.DataFrame: | CODE |
| LOW | akshare/stock_fundamental/stock_finance_ths.py | 622 | def stock_shareholder_change_ths(symbol: str = "688981") -> pd.DataFrame: | CODE |
| LOW | akshare/stock_fundamental/stock_finance_sina.py | 24 | def stock_financial_report_sina( | CODE |
| LOW | akshare/stock_fundamental/stock_finance_sina.py | 181 | def stock_financial_analysis_indicator_em( | CODE |
| LOW | akshare/stock_fundamental/stock_finance_sina.py | 228 | def stock_financial_analysis_indicator( | CODE |
| LOW | akshare/stock_fundamental/stock_finance_sina.py | 340 | def stock_history_dividend_detail( | CODE |
| LOW | akshare/stock_fundamental/stock_finance_sina.py | 511 | def stock_restricted_release_queue_sina(symbol: str = "600000") -> pd.DataFrame: | CODE |
| LOW | akshare/stock_fundamental/stock_finance_sina.py | 543 | def stock_circulate_stock_holder(symbol: str = "600000") -> pd.DataFrame: | CODE |
| LOW | akshare/stock_fundamental/stock_finance_us_em.py | 15 | def __stock_financial_us_report_query_market_em(symbol: str = "TSLA") -> str: | CODE |
| LOW | akshare/stock_fundamental/stock_finance_us_em.py | 45 | def __stock_financial_us_report_em( | CODE |
| LOW | akshare/stock_fundamental/stock_finance_us_em.py | 110 | def stock_financial_us_report_em( | CODE |
| LOW | akshare/stock_fundamental/stock_finance_us_em.py | 158 | def stock_financial_us_analysis_indicator_em( | CODE |
| LOW | akshare/crypto/crypto_hold.py | 13 | def crypto_bitcoin_hold_report(): | CODE |
| LOW | akshare/movie/movie_yien.py | 318 | def movie_boxoffice_yearly_first_week(date: str = "20201018") -> pd.DataFrame: | CODE |
| LOW | akshare/movie/movie_yien.py | 369 | def movie_boxoffice_cinema_daily(date: str = "20240219") -> pd.DataFrame: | CODE |
| LOW | akshare/movie/movie_yien.py | 407 | def movie_boxoffice_cinema_weekly(date: str = "20240219") -> pd.DataFrame: | CODE |
| LOW | akshare/futures/futures_hq_sina.py | 38 | def futures_foreign_commodity_subscribe_exchange_symbol() -> list: | CODE |
| LOW | akshare/futures/futures_hq_sina.py | 58 | def futures_hq_subscribe_exchange_symbol() -> pd.DataFrame: | CODE |
| LOW | akshare/futures/futures_hq_sina.py | 103 | def futures_foreign_commodity_realtime(symbol: Union[str, List[str]]) -> pd.DataFrame: | CODE |
| LOW | akshare/futures/futures_comm_qihuo.py | 16 | def _futures_comm_qihuo_process(df: pd.DataFrame, name: str = None) -> pd.DataFrame: | CODE |
| LOW | akshare/futures/futures_to_spot.py | 128 | def futures_delivery_match_dce(symbol: str = "a") -> pd.DataFrame: | CODE |
| LOW | akshare/futures/futures_to_spot.py | 198 | def futures_delivery_match_czce(date: str = "20210106") -> pd.DataFrame: | CODE |
| LOW | akshare/futures/futures_warehouse_receipt.py | 23 | def futures_warehouse_receipt_czce(date: str = "20251103") -> dict: | CODE |
| LOW | akshare/futures/futures_warehouse_receipt.py | 61 | def futures_warehouse_receipt_dce(date: str = "20251027") -> pd.DataFrame: | CODE |
| LOW | akshare/futures/futures_warehouse_receipt.py | 104 | def futures_shfe_warehouse_receipt(date: str = "20200702") -> dict: | CODE |
| LOW | akshare/futures/futures_warehouse_receipt.py | 159 | def futures_gfex_warehouse_receipt(date: str = "20240122") -> dict: | CODE |
| LOW | akshare/futures/futures_basis.py | 301 | def futures_spot_price_previous(date: str = "20240430") -> pd.DataFrame: | CODE |
| LOW | akshare/futures/futures_hf_em.py | 18 | def __futures_global_hist_market_code(symbol: str = "HG00Y") -> Optional[int]: | CODE |
| LOW | akshare/futures/futures_contract_detail.py | 41 | def futures_contract_detail_em(symbol: str = "v2602F") -> pd.DataFrame: | CODE |
| LOW | akshare/futures/futures_hist_em.py | 17 | def __futures_hist_separate_char_and_numbers_em(symbol: str = "焦煤2506") -> tuple: | CODE |
| LOW | akshare/futures/futures_hist_em.py | 32 | def __fetch_exchange_symbol_raw_em() -> list: | CODE |
| LOW | akshare/futures/futures_hist_em.py | 57 | def __get_exchange_symbol_map() -> Tuple[Dict, Dict, Dict, Dict]: | CODE |
| LOW | akshare/futures/futures_zh_sina.py | 139 | def zh_subscribe_exchange_symbol(symbol: str = "cffex") -> pd.DataFrame: | CODE |
| LOW | akshare/futures/cot.py | 818 | def futures_dce_position_rank( | CODE |
| LOW | akshare/futures/cot.py | 1052 | def futures_dce_position_rank_other(date: str = "20160104"): | CODE |
| LOW | akshare/futures/cot.py | 1171 | def __futures_gfex_contract_list(symbol: str = "si", date: str = "20240729") -> list: | CODE |
| LOW | akshare/futures/cot.py | 1200 | def __futures_gfex_contract_data( | CODE |
| 344 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | akshare/utils/demjson.py | 239 | # ECMAScript has an undefined value (similar to yet distinct from null). | COMMENT |
| HIGH⚡ | akshare/utils/demjson.py | 240 | # Neither Python or strict JSON have support undefined, but to allow | COMMENT |
| HIGH | akshare/utils/demjson.py | 260 | syntax_error = _undefined_class() # same as undefined, but has separate identity | CODE |
| HIGH | akshare/utils/demjson.py | 3164 | "Arrays may have omitted/elided elements, e.g., [1,,3] == [1,undefined,3]", | CODE |
| HIGH | akshare/utils/demjson.py | 5201 | obj.append(undefined) | CODE |
| HIGH⚡ | akshare/stock/cons.py | 101 | c.push(c0); | CODE |
| HIGH⚡ | akshare/stock/cons.py | 102 | if (c.length == 3 || i == s.length - 1) | CODE |
| HIGH⚡ | akshare/stock/cons.py | 106 | c.push(0); | CODE |
| HIGH⚡ | akshare/stock/cons.py | 108 | a.push((c[0] >> 2) & 63); | CODE |
| HIGH⚡ | akshare/stock/cons.py | 109 | a.push(((c[1] >> 4) | (c[0] << 6)) & 63); | CODE |
| HIGH⚡ | akshare/stock/cons.py | 110 | a.push(((c[1] << 4) | (c[2] >> 2)) & 63); | CODE |
| HIGH⚡ | akshare/stock/cons.py | 111 | a.push(c[2] & 63); | CODE |
| HIGH⚡ | akshare/stock/cons.py | 117 | a.push(0); | CODE |
| HIGH⚡ | akshare/stock/cons.py | 437 | t = 0; !(e >= n) && (e != n - 1 || 7 & (r.c ^ t)); t++) { | CODE |
| HIGH⚡ | akshare/stock/cons.py | 445 | u = "v" == m && r.rv ? y() : 1, | CODE |
| HIGH⚡ | akshare/stock/cons.py | 449 | if (!(l[h[m]] = a) && (s > 1 || 241 > t) && (r.zv ? !y() : 1)) { | CODE |
| HIGH⚡ | akshare/stock/cons.py | 459 | c.push(l) | CODE |
| HIGH⚡ | akshare/stock/cons.py | 665 | t.push(i) | CODE |
| HIGH⚡ | akshare/stock/cons.py | 670 | if (t = (t || 0).toString(), | CODE |
| HIGH⚡ | akshare/stock/cons.py | 675 | n.push(Math.floor(e * Math.pow(10, -e) + .5) - 0); | CODE |
| HIGH⚡ | akshare/stock/cons.py | 883 | t = 0; !(e >= i) && (e != i - 1 || 7 & (o.c ^ t)); t++) { | CODE |
| HIGH⚡ | akshare/stock/cons.py | 891 | c = "v" == p && o.rv ? _() : 1, | CODE |
| HIGH⚡ | akshare/stock/cons.py | 895 | if (!(l[d[p]] = r) && (s > 1 || 241 > t) && (o.zv ? !_() : 1)) { | CODE |
| HIGH⚡ | akshare/stock/cons.py | 905 | u.push(l) | CODE |
| HIGH⚡ | akshare/stock/cons.py | 1114 | t.push(n) | CODE |
| HIGH⚡ | akshare/stock/cons.py | 1121 | if (t = (t || 0).toString(), | CODE |
| HIGH⚡ | akshare/stock/cons.py | 1126 | i.push(Math.floor(e * Math.pow(10, -e) + .5) - 0); | CODE |
| HIGH | akshare/stock/cons.py | 249 | for (c.push("+", "/"), | CODE |
| HIGH | akshare/stock/cons.py | 331 | (3 == n || 4 == n) && (r.d += 5 - n); | CODE |
| HIGH | akshare/stock/cons.py | 337 | for (n = r.wd || 62, | CODE |
| HIGH | akshare/stock/cons.py | 351 | e && n[e - 1]++, | CODE |
| HIGH | akshare/stock/cons.py | 405 | i.push(l), | CODE |
| HIGH | akshare/stock/cons.py | 406 | !(e >= n) && (e != n - 1 || 63 & (r.c ^ t + 1)); t++) | CODE |
| HIGH | akshare/stock/cons.py | 519 | l & 1 << 4 - e && i.l_l[e]++, | CODE |
| HIGH | akshare/stock/cons.py | 533 | t.push(n) | CODE |
| HIGH | akshare/stock/cons.py | 548 | n--)) : t.push(e), | CODE |
| HIGH | akshare/stock/cons.py | 563 | for (t = 0; !(e >= n) && (e != n - 1 || 7 & (r.c ^ t)); t++) { | CODE |
| HIGH | akshare/stock/cons.py | 569 | a.push(o) | CODE |
| HIGH | akshare/stock/cons.py | 628 | !r.b_avp && a.a && (r.u_a = P(i && i.amount || 0, 0, r.p_a)) | CODE |
| HIGH | akshare/stock/cons.py | 628 | !r.b_avp && a.a && (r.u_a = P(i && i.amount || 0, 0, r.p_a)) | CODE |
| HIGH | akshare/stock/cons.py | 641 | y() ? y() ? y() ? a.d = x() : r.l_v += N() : r.b_ph && y() ? r["l_" + "et".charAt(r.b_phx && | CODE |
| HIGH | akshare/stock/cons.py | 695 | for (u.push("+", "/"), | CODE |
| HIGH | akshare/stock/cons.py | 777 | (3 == i || 4 == i) && (o.d += 5 - i); | CODE |
| HIGH | akshare/stock/cons.py | 783 | for (i = o.wd || 62, | CODE |
| HIGH | akshare/stock/cons.py | 797 | e && i[e - 1]++, | CODE |
| HIGH | akshare/stock/cons.py | 851 | n.push(l), | CODE |
| HIGH | akshare/stock/cons.py | 852 | !(e >= i) && (e != i - 1 || 63 & (o.c ^ t + 1)); t++) | CODE |
| HIGH | akshare/stock/cons.py | 965 | l & 1 << 4 - e && n.l_l[e]++, | CODE |
| HIGH | akshare/stock/cons.py | 979 | t.push(i) | CODE |
| HIGH | akshare/stock/cons.py | 994 | i--)) : t.push(e), | CODE |
| HIGH | akshare/stock/cons.py | 1010 | for (t = 0; !(e >= i) && (e != i - 1 || 7 & (o.c ^ t)); t++) { | CODE |
| HIGH | akshare/stock/cons.py | 1016 | r.push(a) | CODE |
| HIGH | akshare/stock/cons.py | 1077 | !o.b_avp && r.a && (o.u_a = C(n && n.amount || 0, 0, o.p_a)) | CODE |
| HIGH | akshare/stock/cons.py | 1077 | !o.b_avp && r.a && (o.u_a = C(n && n.amount || 0, 0, o.p_a)) | CODE |
| HIGH | akshare/stock/cons.py | 1090 | _() ? _() ? _() ? r.d = x() : o.l_v += y() : o.b_ph && _() ? o["l_" + "et".charAt(o.b_phx && | CODE |
| HIGH | akshare/stock_feature/stock_cyq_em.py | 62 | yrange.push((minprice + accuracy * i).toFixed(2) / 1); | CODE |
| HIGH | akshare/stock_feature/stock_cyq_em.py | 77 | turnoverRate = Math.min(1, eles.hsl / 100 || 0); | CODE |
| HIGH | akshare/stock_feature/stock_cyq_em.py | 185 | if (percent > 1 || percent < 0) throw 'argument "percent" out of range'; | CODE |
| HIGH | akshare/stock_feature/stock_cyq_em.py | 214 | array.push(0); | CODE |
| HIGH | akshare/stock_feature/stock_a_pe_and_pb.py | 20 | if (n && n.length) { | CODE |
| 5 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | akshare/movie/movie_yien.py | 0 | get js file path :param name: file name :type name: str :param module_file: filename :type module_file: str :return: 路径 | STRING |
| HIGH | akshare/movie/video_yien.py | 0 | get js file path :param name: file name :type name: str :param module_file: filename :type module_file: str :return: 路径 | STRING |
| HIGH | akshare/movie/artist_yien.py | 0 | get js file path :param name: file name :type name: str :param module_file: filename :type module_file: str :return: 路径 | STRING |
| HIGH | akshare/movie/movie_yien.py | 0 | read the file content :param file_name: filename :type file_name: str :return: file content :rtype: str | STRING |
| HIGH | akshare/movie/video_yien.py | 0 | read the file content :param file_name: filename :type file_name: str :return: file content :rtype: str | STRING |
| HIGH | akshare/movie/artist_yien.py | 0 | read the file content :param file_name: filename :type file_name: str :return: file content :rtype: str | STRING |
| HIGH | akshare/bond/bond_issue_cninfo.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock/stock_industry_pe_cninfo.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock/stock_hold_num_cninfo.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock/stock_dividend_cninfo.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock/stock_rank_forecast.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock/stock_cg_guarantee.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock/stock_hold_control_cninfo.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock/stock_ipo_summary_cninfo.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock/stock_allotment_cninfo.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock/stock_profile_cninfo.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock/stock_industry_cninfo.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock/stock_cg_equity_mortgage.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock/stock_share_changes_cninfo.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock/stock_new_cninfo.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock_feature/stock_board_industry_ths.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock_feature/stock_technology_ths.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock_feature/stock_board_concept_ths.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/stock_feature/stock_fund_flow.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/fund/fund_report_cninfo.py | 0 | 获取 js 文件的内容 :param file: js 文件名 :type file: str :return: 文件内容 :rtype: str | STRING |
| HIGH | akshare/economic/macro_china_hk.py | 0 | 东方财富-数据中心-经济数据一览-宏观经济-德国-核心代码 https://data.eastmoney.com/cjsj/foreign_1_0.html :param symbol: 代码 :type symbol: str :retu | STRING |
| HIGH | akshare/economic/macro_japan.py | 0 | 东方财富-数据中心-经济数据一览-宏观经济-德国-核心代码 https://data.eastmoney.com/cjsj/foreign_1_0.html :param symbol: 代码 :type symbol: str :retu | STRING |
| HIGH | akshare/economic/macro_swiss.py | 0 | 东方财富-数据中心-经济数据一览-宏观经济-德国-核心代码 https://data.eastmoney.com/cjsj/foreign_1_0.html :param symbol: 代码 :type symbol: str :retu | STRING |
| HIGH | akshare/economic/macro_germany.py | 0 | 东方财富-数据中心-经济数据一览-宏观经济-德国-核心代码 https://data.eastmoney.com/cjsj/foreign_1_0.html :param symbol: 代码 :type symbol: str :retu | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | akshare/request.py | 10 | CODE | |
| LOW | akshare/request.py | 65 | CODE | |
| LOW | akshare/stock_fundamental/stock_profit_forecast_ths.py | 17 | CODE | |
| LOW | akshare/stock_fundamental/stock_notice.py | 17 | CODE | |
| LOW | …re/stock_fundamental/stock_profit_forecast_hk_etnet.py | 15 | CODE | |
| LOW | akshare/stock_fundamental/stock_finance_ths.py | 194 | CODE | |
| LOW | akshare/stock_fundamental/stock_finance_ths.py | 291 | CODE | |
| LOW | akshare/stock_fundamental/stock_finance_ths.py | 380 | CODE | |
| LOW | akshare/stock_fundamental/stock_finance_ths.py | 477 | CODE | |
| LOW | akshare/futures/futures_comm_qihuo.py | 172 | CODE | |
| LOW | akshare/futures/futures_daily_bar.py | 24 | CODE | |
| LOW | akshare/futures/futures_daily_bar.py | 341 | CODE | |
| LOW | akshare/futures/futures_daily_bar.py | 637 | CODE | |
| LOW | akshare/futures/futures_warehouse_receipt.py | 104 | CODE | |
| LOW | akshare/futures/futures_basis.py | 79 | CODE | |
| LOW | akshare/futures/futures_basis.py | 146 | CODE | |
| LOW | akshare/futures/futures_roll_yield.py | 74 | CODE | |
| LOW | akshare/futures/requests_fun.py | 16 | CODE | |
| LOW | akshare/futures/requests_fun.py | 53 | CODE | |
| LOW | akshare/futures/cot.py | 110 | CODE | |
| LOW | akshare/futures/cot.py | 566 | CODE | |
| LOW | akshare/futures/cot.py | 818 | CODE | |
| LOW | akshare/futures/cot.py | 1052 | CODE | |
| LOW | akshare/futures/receipt.py | 82 | CODE | |
| LOW | akshare/futures/receipt.py | 386 | CODE | |
| LOW | akshare/futures/receipt.py | 571 | CODE | |
| LOW | akshare/futures/futures_settle.py | 59 | CODE | |
| LOW | akshare/futures/futures_settle.py | 349 | CODE | |
| LOW | akshare/futures/cons.py | 522 | CODE | |
| LOW | akshare/bank/bank_cbirc_2020.py | 111 | CODE | |
| LOW | akshare/bond/bond_zh_cov.py | 542 | CODE | |
| LOW | akshare/economic/macro_china.py | 317 | CODE | |
| LOW | akshare/other/other_car_cpca.py | 13 | CODE | |
| LOW | akshare/other/other_car_cpca.py | 163 | CODE | |
| LOW | akshare/other/other_car_cpca.py | 276 | CODE | |
| LOW | akshare/other/other_car_cpca.py | 412 | CODE | |
| LOW | akshare/other/other_car_cpca.py | 528 | CODE | |
| LOW | akshare/other/other_car_cpca.py | 685 | CODE | |
| LOW | akshare/other/other_car_cpca.py | 722 | CODE | |
| LOW | akshare/utils/demjson.py | 79 | CODE | |
| LOW | akshare/utils/demjson.py | 275 | CODE | |
| LOW | akshare/utils/demjson.py | 3068 | CODE | |
| LOW | akshare/utils/demjson.py | 6182 | CODE | |
| LOW | akshare/utils/demjson.py | 718 | CODE | |
| LOW | akshare/utils/demjson.py | 853 | CODE | |
| LOW | akshare/utils/demjson.py | 943 | CODE | |
| LOW | akshare/utils/demjson.py | 1270 | CODE | |
| LOW | akshare/utils/demjson.py | 1516 | CODE | |
| LOW | akshare/utils/demjson.py | 2234 | CODE | |
| LOW | akshare/utils/demjson.py | 2715 | CODE | |
| LOW | akshare/utils/demjson.py | 2835 | CODE | |
| LOW | akshare/utils/demjson.py | 3265 | CODE | |
| LOW | akshare/utils/demjson.py | 3456 | CODE | |
| LOW | akshare/utils/demjson.py | 3521 | CODE | |
| LOW | akshare/utils/demjson.py | 3647 | CODE | |
| LOW | akshare/utils/demjson.py | 4075 | CODE | |
| LOW | akshare/utils/demjson.py | 4406 | CODE | |
| LOW | akshare/utils/demjson.py | 4474 | CODE | |
| LOW | akshare/utils/demjson.py | 4844 | CODE | |
| LOW | akshare/utils/demjson.py | 4989 | CODE | |
| 37 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | akshare/other/other_taptap.py | 14 | # ============================================================ | COMMENT |
| MEDIUM | akshare/other/other_taptap.py | 16 | # ============================================================ | COMMENT |
| MEDIUM⚡ | akshare/utils/demjson.py | 236 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | akshare/utils/demjson.py | 784 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | akshare/utils/demjson.py | 786 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | akshare/utils/demjson.py | 1042 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | akshare/utils/demjson.py | 1044 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 43 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 62 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 264 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 681 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 738 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 1590 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 1592 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 1753 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 1755 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 2182 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 2184 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 2400 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 2402 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 2453 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 2455 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 2602 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 2604 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 2869 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 2871 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 3706 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 3708 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 6106 | # ------------------------------ | COMMENT |
| MEDIUM | akshare/utils/demjson.py | 6408 | # ====================================================================== | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | akshare/stock_fundamental/stock_ipo_review.py | 66 | except Exception as e: | CODE |
| LOW | akshare/stock_fundamental/stock_finance_sina.py | 583 | except Exception as e: | CODE |
| LOW | akshare/stock_fundamental/stock_finance_sina.py | 653 | except Exception as e: | CODE |
| LOW | akshare/stock_fundamental/stock_finance_sina.py | 725 | except Exception as e: | CODE |
| LOW | akshare/stock_fundamental/stock_ipo_tutor.py | 68 | except Exception as e: | CODE |
| LOW | akshare/futures/futures_basis.py | 132 | except Exception as e: # noqa: E722 | CODE |
| MEDIUM | akshare/economic/macro_bank.py | 77 | print(f"Error fetching data: {e}") | CODE |
| MEDIUM | akshare/utils/demjson.py | 1797 | def restore_position(self): | CODE |
| LOW | akshare/utils/demjson.py | 1838 | except Exception as err: | CODE |
| LOW | akshare/utils/demjson.py | 2657 | except Exception as err: | CODE |
| LOW | akshare/utils/demjson.py | 3954 | except Exception as err: | CODE |
| LOW | akshare/utils/demjson.py | 5784 | except Exception: | CODE |
| LOW | akshare/utils/demjson.py | 6599 | except Exception as err: | CODE |
| LOW | akshare/utils/demjson.py | 6378 | except Exception: | STRING |
| LOW | akshare/utils/demjson.py | 6396 | except Exception: | STRING |
| LOW | akshare/news/news_baidu.py | 124 | except Exception as e: | CODE |
| LOW⚡ | akshare/stock/stock_us_sina.py | 174 | except Exception: | CODE |
| LOW⚡ | akshare/stock/stock_us_sina.py | 178 | except Exception as e: | CODE |
| LOW⚡ | akshare/stock/stock_us_sina.py | 183 | except Exception: | CODE |
| LOW⚡ | akshare/stock/stock_us_sina.py | 187 | except Exception as e: | CODE |
| LOW | akshare/stock/stock_zh_kcb_sina.py | 156 | except Exception: | CODE |
| LOW | akshare/stock/stock_zh_kcb_sina.py | 160 | except Exception as e: | CODE |
| LOW | akshare/stock/stock_zh_kcb_sina.py | 197 | except Exception: | CODE |
| LOW | akshare/stock/stock_zh_kcb_sina.py | 201 | except Exception as e: | CODE |
| LOW | akshare/stock/stock_zh_kcb_sina.py | 228 | except Exception: | CODE |
| LOW | akshare/stock/stock_zh_kcb_sina.py | 232 | except Exception as e: | CODE |
| LOW | akshare/fund/fund_fee_em.py | 55 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | akshare/movie/movie_yien.py | 75 | CODE | |
| LOW | akshare/movie/video_yien.py | 62 | CODE | |
| LOW | akshare/movie/artist_yien.py | 62 | CODE | |
| LOW | akshare/futures/cot.py | 405 | CODE | |
| LOW | akshare/bond/bond_info_cm.py | 65 | CODE | |
| LOW | akshare/utils/demjson.py | 6179 | CODE | |
| LOW | akshare/utils/demjson.py | 6565 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 161 | COMMENT | |
| LOW | docs/conf.py | 61 | # Add any Sphinx extension module names here, as strings. They can be | COMMENT |
| LOW | akshare/cal/rv.py | 121 | # yang_zhang_rv formula is give as: | COMMENT |
| LOW | akshare/fund/fund_etf_em.py | 341 | :rtype: pandas.DataFrame | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | akshare/utils/demjson.py | 6062 | """This method is used to encode user-defined class objects. | STRING |
| MEDIUM | akshare/utils/demjson.py | 6287 | # Initialize the JSON object | STRING |