Skip to content

Instantly share code, notes, and snippets.

@tlyim
Created May 19, 2025 05:53
Show Gist options
  • Select an option

  • Save tlyim/7b3af1754ac0175d5f0127a53bd192bd to your computer and use it in GitHub Desktop.

Select an option

Save tlyim/7b3af1754ac0175d5f0127a53bd192bd to your computer and use it in GitHub Desktop.
Using sec-downloader and sec-parser to download and parse 10-K and convert a selected FS Note into the Markdown format
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Using sec-downloader and sec-parser\n",
"## to download and parse 10-K and convert a selected FS Note into the Markdown format\n",
"\n",
"Github repo:\n",
"- https://github.com/alphanome-ai/sec-parser\n",
"- https://github.com/Elijas/sec-downloader\n",
"\n",
"Documentation:\n",
"- https://sec-parser.readthedocs.io/en/latest/notebooks/user_guide.html\n",
"- https://elijas.github.io/sec-downloader/ "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#!pip install sec-parser\n",
"#!pip install sec-downloader\n",
"\n",
"#!pip install tiktoken"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sec_downloader version: 0.11.2\n",
"sec_parser version: 0.58.1\n"
]
}
],
"source": [
"from importlib.metadata import version\n",
"\n",
"print(f\"sec_downloader version: {version('sec_downloader')}\")\n",
"print(f\"sec_parser version: {version('sec_parser')}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Setting up sec_downloader"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Help on method get_filing_metadatas in module sec_downloader.core:\n",
"\n",
"get_filing_metadatas(query: Union[str, sec_downloader.types.RequestedFilings, sec_downloader.types.CompanyAndAccessionNumber]) -> list[sec_downloader.types.FilingMetadata] method of sec_downloader.core.Downloader instance\n",
"\n",
"Help on method download_filing in module sec_downloader.core:\n",
"\n",
"download_filing(*, url: str) -> bytes method of sec_downloader.core.Downloader instance\n",
"\n",
"Help on method get_filing_html in module sec_downloader.core:\n",
"\n",
"get_filing_html(*, query: Union[str, sec_downloader.types.RequestedFilings, sec_downloader.types.CompanyAndAccessionNumber, NoneType] = None, ticker: Optional[str] = None, form: Optional[str] = None) -> bytes method of sec_downloader.core.Downloader instance\n",
" Simplified interface to download a single filing.\n",
" To download multiple filings, save metadata, and have more control,\n",
" use `get_filing_metadatas()` and `download_filing()`.\n",
"\n"
]
}
],
"source": [
"import warnings\n",
"from sec_downloader import Downloader\n",
"import sec_parser as sp\n",
"\n",
"# Setting up for downloading from SEC EDGAR \n",
"dl = Downloader(\"MyCompanyName\", \"email@example.com\") # Let SEC know who you are\n",
"\n",
"# Documentation for sec-downloader: https://elijas.github.io/sec-downloader/\n",
"\n",
"help(dl.get_filing_metadatas)\n",
"help(dl.download_filing)\n",
"help(dl.get_filing_html)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Download a specific 10-K\n",
"\n",
"### Example: ticker=\"NVDA\", form_type=\"10-K\", report_date=\"2024-01-28\" \n",
"https://www.sec.gov/Archives/edgar/data/1045810/000104581024000029/nvda-20240128.htm"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"form_type = 10-K, company_name = NVIDIA CORP, cik = 0001045810, tickers = [Ticker(symbol='NVDA', exchange='Nasdaq')]\n",
"report_date = 2025-01-26, accession_number = 0001045810-25-000023, filing_date = 2025-02-26, primary_doc_url = https://www.sec.gov/Archives/edgar/data/1045810/000104581025000023/nvda-20250126.htm\n",
"report_date = 2024-01-28, accession_number = 0001045810-24-000029, filing_date = 2024-02-21, primary_doc_url = https://www.sec.gov/Archives/edgar/data/1045810/000104581024000029/nvda-20240128.htm\n",
"report_date = 2023-01-29, accession_number = 0001045810-23-000017, filing_date = 2023-02-24, primary_doc_url = https://www.sec.gov/Archives/edgar/data/1045810/000104581023000017/nvda-20230129.htm\n",
"report_date = 2022-01-30, accession_number = 0001045810-22-000036, filing_date = 2022-03-18, primary_doc_url = https://www.sec.gov/Archives/edgar/data/1045810/000104581022000036/nvda-20220130.htm\n",
"report_date = 2021-01-31, accession_number = 0001045810-21-000010, filing_date = 2021-02-26, primary_doc_url = https://www.sec.gov/Archives/edgar/data/1045810/000104581021000010/nvda-20210131.htm\n",
"Downloading for report_date = 2024-01-28\n"
]
}
],
"source": [
"\n",
"# Method 1: Download the latest filing of a firm by its ticker and form type\n",
"#html = dl.get_filing_html(ticker=\"NVDA\", form=\"10-K\")\n",
"\n",
"# Method 2: \n",
"# Step (i): Download and review filings metadata of a firm by its ticker and form type\n",
"# Step (ii): Download a specific filing by a primary_doc_url identified in Step (i)\n",
"# Note: sec_downloader cannot filter by filing date\n",
"# Workaround: get many recent filings and find accession number of the filing in concern\n",
"from sec_downloader.types import RequestedFilings\n",
"\n",
"# Download and review filings metadata\n",
"metadatas = dl.get_filing_metadatas(\n",
" RequestedFilings(ticker_or_cik=\"NVDA\", form_type=\"10-K\", limit=5)\n",
")\n",
"print(f\"form_type = {metadatas[0].form_type}, company_name = {metadatas[0].company_name}, cik = {metadatas[0].cik}, tickers = {metadatas[0].tickers}\") \n",
"for i in range(len(metadatas)):\n",
" #print(metadatas[i]) \n",
" print(f\"report_date = {metadatas[i].report_date}, accession_number = {metadatas[i].accession_number}, filing_date = {metadatas[i].filing_date}, primary_doc_url = {metadatas[i].primary_doc_url}\")\n",
"\n",
"metadata = [item for item in metadatas if item.report_date == \"2024-01-28\"][0]\n",
"print(f\"Downloading for report_date = {metadata.report_date}\") \n",
"#print(metadata)\n",
"html = dl.download_filing(url=metadata.primary_doc_url) #.decode()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Review the downloaded filing, labelled as html (a byte object), by decoding it in utf-8"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'bytes'>\n",
"['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'center', 'count', 'decode', 'endswith', 'expandtabs', 'find', 'fromhex', 'hex', 'index', 'isalnum', 'isalpha', 'isascii', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']\n",
"<?xml version='1.0' encoding='ASCII'?>\n",
"<html xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:iso4217=\"http://www.xbrl.org/2003/iso4217\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:ixt=\"http://www.xbrl.org/inlineXBRL/transformation/2020-02-12\" xmlns:us-gaap=\"http://fasb.org/us-gaap/2023\" xmlns:nvda=\"http://www.nvidia.com/20240128\" xmlns:country=\"http://xbrl.sec.gov/country/2023\" xmlns:xbrldi=\"http://xbrl.org/2006/xbrldi\" xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:srt=\"http://fasb.org/srt/2023\" xmlns:stpr=\"http://xbrl.sec.gov/stpr/2023\" xmlns:ecd=\"http://xbrl.sec.gov/ecd/2023\" xmlns:dei=\"http://xbrl.sec.gov/dei/2023\" xmlns:ix=\"http://www.xbrl.org/2013/inlineXBRL\" xmlns:link=\"http://www.xbrl.org/2003/linkbase\" xmlns:xbrli=\"http://www.xbrl.org/2003/instance\" xmlns:ixt-sec=\"http://www.sec.gov/inlineXBRL/transformation/2015-08-31\" xml:lang=\"en-US\"><head><meta http-equiv=\"Content-Type\" content=\"text/html\"/>\n",
"\n",
"\n",
"<title>nvda-20240128</title></head><body><div style=\"display:none\"><ix:header><ix:hidden><ix:nonNumeric contextRef=\"c-1\" name=\"dei:EntityCentralIndexKey\" id=\"f-32\">0001045810</ix:nonNumeric><ix:nonNumeric contextRef=\"c-1\" name=\"dei:DocumentFiscalYearFocus\" id=\"f-33\">2024</ix:nonNumeric><ix:nonNumeric contextRef=\"c-1\" name=\"dei:DocumentFiscalPeriodFocus\" id=\"f-34\">FY</ix:nonNumeric><ix:nonNumeric contextRef=\"c-1\" name=\"dei:AmendmentFlag\" format=\"ixt:fixed-false\" id=\"f-35\">false</ix:nonNumeric><ix:nonNumeric contextRef=\"c-4\" name=\"ecd:TrdArrDuration\" format=\"ixt-sec:durday\" id=\"f-45\">350</ix:nonNumeric><ix:nonNumeric contextRef=\"c-46\" name=\"us-gaap:PropertyPlantAndEquipmentUsefulLife\" id=\"f-407\">P3Y</ix:nonNumeric><ix:nonNumeric contextRef=\"c-47\" name=\"us-gaap:PropertyPlantAndEquipmentUsefulLife\" id=\"f-408\">P4Y</ix:nonNumeric><ix:nonNumeric contextRef=\"c-49\" name=\"us-gaap:PropertyPlantAndEquipmentUsefulLife\" id=\"f-410\">P5Y</ix:nonNumeric><ix:nonNumeric contextRef=\"c-52\" name=\"nvda:WarrantyLiabilityTermOfWarranties\" id=\"f-420\">P1Y</ix:nonNumeric><ix:nonNumeric contextRef=\"c-54\" name=\"us-gaap:PropertyPlantAndEquipmentUsefulLife\" id=\"f-434\">P3Y</ix:nonNumeric><ix:nonNumeric contextRef=\"c-55\" name=\"us-gaap:PropertyPlantAndEquipmentUsefulLife\" id=\"f-435\">P3Y</ix:nonNumeric><ix:nonNumeric contextRef=\"c-55\" name=\"us-gaap:FiniteLivedIntangibleAssetUsefulLife\" id=\"f-442\">P1Y</ix:nonNumeric><ix:nonNumeric contextRef=\"c-9\" name=\"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList\" id=\"f-460\">http://fasb.org/us-gaap/2023#AccruedLiabilitiesCurrent</ix:nonNumeric><ix:nonNumeric contextRef=\"c-9\" name=\"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList\" id=\"f-920\">http://fasb.org/us-gaap/2023#AccruedLiabilitiesCurrent</ix:nonNumeric><ix:nonNumeric contextRef=\"c-10\" name=\"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList\" id=\"f-921\">http://fasb.org/us-gaap/2023#AccruedLiabilitiesCurrent</ix:nonNumeric></ix:hidden><ix:references xml:lang=\"en-US\"><link:schemaRef xlink:type=\"simple\" xlink:href=\"nvda-20240128.xsd\"/></ix:references><ix:resources><xbrli:context id=\"c-1\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-30</xbrli:startDate><xbrli:endDate>2024-01-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id=\"c-2\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-07-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id=\"usd\"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:context id=\"c-3\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-02-16</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id=\"shares\"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:context id=\"c-4\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension=\"ecd:IndividualAxis\">nvda:JohnO.DabiriMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-30</xbrli:startDate><xbrli:endDate>2024-01-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id=\"c-5\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-30</xbrli:startDate><xbrli:endDate>2024-01-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id=\"c-6\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension=\"ecd:IndividualAxis\">nvda:JohnO.DabiriMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id=\"c-7\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-31</xbrli:startDate><xbrli:endDate>2023-01-29</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id=\"c-8\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2022-01-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id=\"usdPerShare\"><xbrli:divide><xbrli:unitNumerator><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unitNumerator><xbrli:unitDenominator><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unitDenominator></xbrli:divide></xbrli:unit><xbrli:context id=\"c-9\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-01-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id=\"c-10\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-01-29</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id=\"c-11\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension=\"us-gaap:StatementEquityComponentsAxis\">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id=\"c-12\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension=\"us-gaap:StatementEquityComponentsAxis\">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id=\"c-13\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension=\"us-gaap:StatementEquityComponentsAxis\">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id=\"c-14\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension=\"us-gaap:StatementEquityComponentsAxis\">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id=\"c-15\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension=\"us-gaap:StatementEquityComponentsAxis\">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id=\"c-16\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id=\"c-17\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension=\"us-gaap:StatementEquityComponentsAxis\">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2022-01-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id=\"c-18\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension=\"us-gaap:StatementEquityComponentsAxis\">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2022-01-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id=\"c-19\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension=\"us-gaap:StatementEquityComponentsAxis\">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2022-01-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id=\"c-20\"><xbrli:entity><xbrli:identifier scheme=\"http://www.sec.gov/CIK\">0001045810</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension=\"us-gaap:StatementEquityComponentsAxis\">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2022-01-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:co\n"
]
}
],
"source": [
"print(type(html))\n",
"print(dir(html))\n",
"\n",
"print(html.decode('utf-8')[:9999])\n",
"#lines = html.decode('utf-8').splitlines() \n",
"#for line in lines[:5]:\n",
"# print(line)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Parse 10-K using sec-parser's Edgar10QParser()\n",
"\n",
"(Using Method 1: Ignore warnings from the parsing step that identifies the 10Q top level section types) \n",
"See details at https://github.com/Elijas/sec-parser-exploration/blob/main/02_other_sec_form_types.ipynb"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1;34mTopSectionTitle\u001b[0m: Part I\n",
"├── \u001b[1;34mTopSectionTitle\u001b[0m: Item 1. Business\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Our Company\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: NVIDIA pioneered accelerated co...ated in Delaware in April 1998.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Our Businesses\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We report our business results ...e and 3D internet applications.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Our Markets\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We specialize in markets where ... Visualization, and Automotive.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Data Center\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: The NVIDIA Data Center platform... service in their data centers.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Gaming\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Gaming is the largest entertain...ent services for game consoles.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Professional Visualization\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We serve the Professional Visua...e on-premises and in the cloud.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Automotive\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Automotive market is comprised ...roughout the life of a vehicle.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Business Strategies\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: NVIDIA’s key strategies that sh...ce the reach of our technology.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Sales and Marketing\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Our worldwide sales and marketi...ns that leverage our platforms.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Seasonality\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Our computing platforms serve a...sonality trends may not repeat.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Manufacturing\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We utilize a fabless and contra...ackaging of our final products.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Competition\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: The market for our products is ...large cloud services companies.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Patents and Proprietary Rights\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We rely primarily on a combinat...tering such license agreements.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Government Regulations\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Our worldwide business activiti...ion of these potential impacts.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Sustainability and Governance\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: NVIDIA invents computing techno...face related to sustainability.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Climate Change\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: In the area of environmental su...tion and adaptation strategies.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Human Capital Management\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We believe that our employees a...hnical and non-technical staff.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Recruitment\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: As the demand for global techni...coming from employee referrals.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Development and Retention\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: To support employee development...overall turnover rate was 2.7%.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Compensation, Benefits, and Well-Being\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Our compensation program reward...lass talent and their families.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Diversity, Inclusion, and Belonging\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We believe that diverse teams f...d Hispanic or Latino employees.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Flexible Working Environment\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We support a flexible work envi...employees to rest and recharge.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Information About Our Executive Officers\n",
"│ │ ├── \u001b[1;34mTextElement\u001b[0m: The following sets forth certai...itions as of February 16, 2024:\n",
"│ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~6 rows, ~5 numbers, and 319 characters.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Jen-Hsun Huang co-founded NVIDI...egree from Stanford Law School.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Available Information\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Our annual reports on Form 10-K...his Annual Report on Form 10-K.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Item 1A. Risk Factors\n",
"│ │ └── \u001b[1;34mSupplementaryText\u001b[0m: The following risk factors shou...ts of operations or reputation.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Risk Factors Summary\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Risks Related to Our Industry and Markets\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: •Failure to meet the evolving n...et share and financial results.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Risks Related to Demand, Supply and Manufacturing\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: •Failure to estimate customer d... and could damage our business.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Risks Related to Our Global Operating Business\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: •Adverse economic conditions ma... our stock price could decline.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Risks Related to Regulatory, Legal, Our Stock and Other Matters\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: •We are subject to complex laws...or prevent a change in control.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Risk Factors\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Risks Related to Our Industry and Markets\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Failure to meet the evolving ne...y impact our financial results.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Our accelerated computing platf...t revenue from these offerings.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Competition could adversely imp...et share and financial results.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Our target markets remain compe...t establish meaningful revenue.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Risks Related to Demand, Supply and Manufacturing\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Failure to estimate customer de...ches between supply and demand.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We use third parties to manufac...versely affect customer demand.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Dependency on third-party suppl...es and could harm our business.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We depend on foundries to manuf...ectricity conservation efforts.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Defects in our products have ca... cause us to lose market share.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Our hardware and software produ...y impact our financial results.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Risks Related to Our Global Operating Business\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Adverse economic conditions may harm our business.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Economic and industry uncertain...s to record impairment charges.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: International sales and operati...s that could harm our business.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We sell our products internatio... and other catastrophic events.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Product, system security, and d...rm our business and reputation.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Security breaches, computer mal...d be used to harm our business.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Business disruptions could harm...revenue and increase our costs.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Our worldwide operations could ...sume our products and services.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Climate change may have a long-term impact on our business.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Climate change may have an incr...lternative computing platforms.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: We may not be able to realize t... products or sell our products.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We have acquired and invested a...ontinue to do so in the future.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: We receive a significant amount...ling to any of these customers.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We receive a significant amount...tion and results of operations.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: If we are unable to attract, re...es, our business may be harmed.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: To be competitive and execute o...xecution and long-term success.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Our business is dependent upon ...usiness, and internal controls.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We rely upon internal processes...tion by regulatory authorities.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Our operating results have in t... our stock price could decline.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Our operating results have in t...e substantial price volatility.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Risks Related to Regulatory, Legal, Our Stock and Other Matters\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Our operations could be affecte... adversely impact our business.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We are subject to laws and regu...business and financial results.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Increased scrutiny from shareho...ppliers to do business with us.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Shareholder advocacy groups, ce...ties or expose us to liability.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Issues relating to the responsi...r financial harm and liability.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Concerns relating to the respon...reputational or financial harm.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Actions to adequately protect o...making or selling our products.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: From time to time, we are invol...ether they will be enforceable.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: We are subject to stringent and...tory proceedings and liability.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We process sensitive, confident...siness, or financial condition.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: We may have exposure to additio... and other tax-related factors.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We are subject to complex incom...y affect our financial results.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Our business is exposed to the ...ons and regulatory proceedings.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We currently and will likely co...d disruptive to our operations.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Our indebtedness could adversel...ng our contractual obligations.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: As of January 28, 2024, we had ...he terms of any such financing.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Delaware law and our certificat...or prevent a change in control.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: The anti-takeover provisions of... corporate actions they desire.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Item 1B. Unresolved Staff Comments\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: Not applicable.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Item 1C. Cybersecurity\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Risk management and strategy\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We have in place certain infras...ut cybersecurity-related risks.\n",
"│ └── \u001b[1;34mTitleElement\u001b[0m: Governance\n",
"│ └── \u001b[1;34mTextElement\u001b[0m: Information security matters, i...and private sector assignments.\n",
"├── \u001b[1;34mTopSectionTitle\u001b[0m: Item 2. Properties\n",
"│ └── \u001b[1;34mTextElement\u001b[0m: Our headquarters is in Santa Cl...reby incorporated by reference.\n",
"├── \u001b[1;34mTopSectionTitle\u001b[0m: Item 3. Legal Proceedings\n",
"│ └── \u001b[1;34mSupplementaryText\u001b[0m: Please see Note 13 of the Notes...ssion of our legal proceedings.\n",
"└── \u001b[1;34mTopSectionTitle\u001b[0m: Item 4. Mine Safety Disclosures\n",
" └── \u001b[1;34mTextElement\u001b[0m: Not applicable.\n",
"\u001b[1;34mTopSectionTitle\u001b[0m: Part II\n",
"├── \u001b[1;34mTopSectionTitle\u001b[0m: Item 5. Market for Registrant's... Purchases of Equity Securities\n",
"│ ├── \u001b[1;34mTextElement\u001b[0m: Our common stock is traded on t...held in street or nominee name.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Issuer Purchases of Equity Securities\n",
"│ │ ├── \u001b[1;34mTextElement\u001b[0m: In August 2023, our Board of Di...th quarter of fiscal year 2024:\n",
"│ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~5 rows, ~17 numbers, and 443 characters.\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: From January 29, 2024 to Februa... to a Rule 10b5-1 trading plan.\n",
"│ ├── \u001b[1;34mTitleElement\u001b[0m: Restricted Stock Unit Share Withholding\n",
"│ │ └── \u001b[1;34mTextElement\u001b[0m: We withhold common stock shares...ing our equity incentive plans.\n",
"│ └── \u001b[1;34mTitleElement\u001b[0m: Stock Performance Graphs\n",
"│ ├── \u001b[1;34mTextElement\u001b[0m: The following graph compares th...to indicate future performance.\n",
"│ ├── \u001b[1;34mImageElement\u001b[0m\n",
"│ └── \u001b[1;34mTitleElement\u001b[0m: *$100 invested on 1/27/19 in st...ding reinvestment of dividends.\n",
"│ ├── \u001b[1;34mSupplementaryText\u001b[0m: Source: FactSet financial data and analytics.\n",
"│ └── \u001b[1;34mTableElement\u001b[0m: Table with ~3 rows, ~26 numbers, and 234 characters.\n",
"└── \u001b[1;34mTopSectionTitle\u001b[0m: Item 6. [Reserved]\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Item 7. Management's Discussion...ition and Results of Operations\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: The following discussion and an...ell shares of our common stock.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Overview\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Our Company and Our Businesses\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: NVIDIA pioneered accelerated co...ated in Delaware in April 1998.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Recent Developments, Future Objectives and Challenges\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Demand and Supply, Product Tran...ew Products and Business Models\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Demand for our data center syst...ong-term trajectory is unknown.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Global Trade\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: During the third quarter of fis...ssion of this potential impact.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Macroeconomic Factors\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Macroeconomic factors, includin...ity and costs with our vendors.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Israel and Hamas Conflict\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We are monitoring the impact of...r uncertainty for our business.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Fiscal Year 2024 Summary\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~6 rows, ~20 numbers, and 301 characters.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We specialize in markets where ...o the proposed Arm transaction.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Market Platform Highlights\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Data Center revenue for fiscal ...GWM, Li Auto, ZEEKR and Xiaomi.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Critical Accounting Estimates\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Our consolidated financial stat...ignificant accounting policies.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Inventories\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We charge cost of sales for inv...nalysis for further discussion.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Income Taxes\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We are subject to income taxes ...omponent of income tax expense.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Revenue Recognition\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Revenue Allowances\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: For products sold with a right ... internal and external factors.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: License and Development Arrangements\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Revenue from License and Develo...hird-party costs as applicable.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Contracts with Multiple Performance Obligations\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Our contracts may contain more ...ta and other observable inputs.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Change in Accounting Estimate\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: In February 2023, we assessed t...r both basic and diluted share.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Results of Operations\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: A discussion regarding our fina...sed as a percentage of revenue.\n",
" │ └── \u001b[1;34mTableElement\u001b[0m: Table with ~16 rows, ~31 numbers, and 488 characters.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Reportable Segments\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Revenue by Reportable Segments\n",
" │ └── \u001b[1;34mTableElement\u001b[0m: Table with ~3 rows, ~14 numbers, and 178 characters.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Operating Income by Reportable Segments\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~4 rows, ~18 numbers, and 206 characters.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Compute & Networking revenue – ...on expense in fiscal year 2024.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Concentration of Revenue\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Revenue by geographic region is...for fiscal years 2023 and 2022.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Gross Profit and Gross Margin\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Gross profit consists of total ...rs 2024 and 2023, respectively.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Operating Expenses\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~8 rows, ~24 numbers, and 391 characters.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: The increase in research and de...wth and compensation increases.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Acquisition Termination Cost\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We recorded an acquisition term...prepayment provided at signing.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Other Income (Expense), Net\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~4 rows, ~14 numbers, and 179 characters.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Interest income consists of int...nts in non-affiliated entities.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Income Taxes\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: We recognized income tax expens... change our current assessment.\n",
" │ └── \u001b[1;34mSupplementaryText\u001b[0m: Refer to Note 14 of the Notes t...0-K for additional information.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Liquidity and Capital Resources\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~3 rows, ~8 numbers, and 175 characters.\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~3 rows, ~8 numbers, and 226 characters.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Our investment policy requires ...set by lower share repurchases.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Liquidity\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Our primary sources of liquidit...onal U.S. federal income taxes.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Capital Return to Shareholders\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: During fiscal year 2024, we pai... material for fiscal year 2024.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Outstanding Indebtedness and Commercial Paper Program\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Our aggregate debt maturities a...y year payable, are as follows:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~8 rows, ~9 numbers, and 275 characters.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: We have a $575 million commerci...o commercial paper outstanding.\n",
" │ └── \u001b[1;34mSupplementaryText\u001b[0m: Refer to Note 12 of the Notes t...rm 10-K for further discussion.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Material Cash Requirements and Other Obligations\n",
" │ ├── \u001b[1;34mSupplementaryText\u001b[0m: For a description of our long-t...ort on Form 10-K, respectively.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We have unrecognized tax benefi...m 10-K for further information.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Climate Change\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: To date, there has been no mate...limate-related business trends.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Adoption of New and Recently Issued Accounting Pronouncements\n",
" │ └── \u001b[1;34mSupplementaryText\u001b[0m: Refer to Note 1 of the Notes to...sued accounting pronouncements.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Item 7A. Quantitative and Quali...e Disclosures about Market Risk\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Investment and Interest Rate Risk\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We are exposed to interest rate...0-K for additional information.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Foreign Exchange Rate Risk\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: We consider our direct exposure...ssets and liabilities balances.\n",
" │ └── \u001b[1;34mSupplementaryText\u001b[0m: Refer to Note 11 of the Notes t...0-K for additional information.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Item 8. Financial Statements and Supplementary Data\n",
" │ └── \u001b[1;34mSupplementaryText\u001b[0m: The information required by thi...his Annual Report on Form 10-K.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Item 9. Changes in and Disagree...unting and Financial Disclosure\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: None.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Item 9A. Controls and Procedures\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Controls and Procedures\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Disclosure Controls and Procedures\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Based on their evaluation as of...o provide reasonable assurance.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Management’s Annual Report on I...ontrol Over Financial Reporting\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Our management is responsible f...eport which is included herein.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Changes in Internal Control Over Financial Reporting\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: There have been no changes in o...ntrol over financial reporting.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Inherent Limitations on Effectiveness of Controls\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Our management, including our C...thin NVIDIA have been detected.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Item 9B.  Other Information\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: On December 18, 2023, John O. D...ar amount of shares to be sold.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Item 9C. Disclosure Regarding ...ctions that Prevent Inspections\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Not Applicable.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Part III\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Certain information required by...corporated herein by reference.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Item 10. Directors, Executive Officers and Corporate Governance\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Identification of Directors\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Information regarding directors...reby incorporated by reference.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Identification of Executive Officers\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Reference is made to the inform...reby incorporated by reference.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Identification of Audit Committee and Financial Experts\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Information regarding our Audit...reby incorporated by reference.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Material Changes to Procedures for Recommending Directors\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Information regarding procedure...reby incorporated by reference.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Delinquent Section 16(a) Reports\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Information regarding complianc...reby incorporated by reference.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Code of Conduct\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Information regarding our Code ...his Annual Report on Form 10-K.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Item 11. Executive Compensation\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Information regarding our execu...reby incorporated by reference.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Item 12. Security Ownership of ...and Related Stockholder Matters\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Ownership of NVIDIA Securities\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Information regarding ownership...reby incorporated by reference.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Equity Compensation Plan Information\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Information regarding our equit...reby incorporated by reference.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Item 13. Certain Relationships ...ions, and Director Independence\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Information regarding related t...reby incorporated by reference.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Item 14. Principal Accountant Fees and Services\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Information regarding accountin...reby incorporated by reference.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Part IV\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Item 15. Exhibit and Financial Statement Schedules\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Page(a)1.Financial Statements  ...s Annual Report on Form 10-K.82\n",
" │ ├── \u001b[1;34mTitleElement\u001b[0m: Report of Independent Registered Public Accounting Firm\n",
" │ │ ├── \u001b[1;34mTextElement\u001b[0m: To the Board of Directors and Shareholders of NVIDIA Corporation\n",
" │ │ ├── \u001b[1;34mTitleElement\u001b[0m: Opinions on the Financial State...ontrol over Financial Reporting\n",
" │ │ │ └── \u001b[1;34mTextElement\u001b[0m: We have audited the accompanyin...work (2013) issued by the COSO.\n",
" │ │ ├── \u001b[1;34mTitleElement\u001b[0m: Basis for Opinions\n",
" │ │ │ └── \u001b[1;34mTextElement\u001b[0m: The Company's management is res...sonable basis for our opinions.\n",
" │ │ ├── \u001b[1;34mTitleElement\u001b[0m: Definition and Limitations of I...ontrol over Financial Reporting\n",
" │ │ │ └── \u001b[1;34mTextElement\u001b[0m: A company’s internal control ov... or procedures may deteriorate.\n",
" │ │ └── \u001b[1;34mTitleElement\u001b[0m: Critical Audit Matters\n",
" │ │ ├── \u001b[1;34mTextElement\u001b[0m: The critical audit matter commu...isclosures to which it relates.\n",
" │ │ └── \u001b[1;34mTitleElement\u001b[0m: Valuation of Inventories - Prov...ss Product Purchase Commitments\n",
" │ │ └── \u001b[1;34mTextElement\u001b[0m: As described in Notes 1, 10 and...e Company’s auditor since 2004.\n",
" │ ├── \u001b[1;34mTitleElement\u001b[0m: Consolidated Statements of Income\n",
" │ │ ├── \u001b[1;34mSupplementaryText\u001b[0m: (In millions, except per share data)\n",
" │ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~22 rows, ~58 numbers, and 786 characters.\n",
" │ │ └── \u001b[1;34mSupplementaryText\u001b[0m: See accompanying notes to the consolidated financial statements.\n",
" │ ├── \u001b[1;34mTitleElement\u001b[0m: Consolidated Statements of Comprehensive Income\n",
" │ │ ├── \u001b[1;34mSupplementaryText\u001b[0m: (In millions)\n",
" │ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~12 rows, ~28 numbers, and 623 characters.\n",
" │ │ └── \u001b[1;34mSupplementaryText\u001b[0m: See accompanying notes to the consolidated financial statements.\n",
" │ ├── \u001b[1;34mTitleElement\u001b[0m: Consolidated Balance Sheets\n",
" │ │ ├── \u001b[1;34mSupplementaryText\u001b[0m: (In millions, except par value)\n",
" │ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~34 rows, ~59 numbers, and 1366 characters.\n",
" │ │ └── \u001b[1;34mSupplementaryText\u001b[0m: See accompanying notes to the consolidated financial statements.\n",
" │ ├── \u001b[1;34mTitleElement\u001b[0m: Consolidated Statements of Shareholders' Equity\n",
" │ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~27 rows, ~89 numbers, and 1718 characters.\n",
" │ │ └── \u001b[1;34mSupplementaryText\u001b[0m: See accompanying notes to the consolidated financial statements.\n",
" │ ├── \u001b[1;34mTitleElement\u001b[0m: Consolidated Statements of Cash Flows\n",
" │ │ ├── \u001b[1;34mSupplementaryText\u001b[0m: (In millions)\n",
" │ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~41 rows, ~102 numbers, and 2145 characters.\n",
" │ │ └── \u001b[1;34mSupplementaryText\u001b[0m: See accompanying notes to the consolidated financial statements.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...nsolidated Financial Statements\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 1 - Organization and Summa...Significant Accounting Policies\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Our Company\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Headquartered in Santa Clara, C...rporation and its subsidiaries.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Fiscal Year\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We operate on a 52- or 53-week ...nd 2022 were all 52-week years.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Principles of Consolidation\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Our consolidated financial stat...en eliminated in consolidation.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Use of Estimates\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: The preparation of financial st...r both basic and diluted share.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Revenue Recognition\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We derive our revenue from prod...tisfy a performance obligation.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Product Sales Revenue\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Revenue from product sales is r...ect to be claimed by customers.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: License and Development Arrangements\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Our license and development arr...n for such loss in that period.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Software Licensing\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Our software licenses provide o..., or as services are performed.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Cloud Services\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Cloud services, which allow cus...r software and related support.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Contracts with Multiple Performance Obligations\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Our contracts may contain more ...ion, no allocation is required.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Product Warranties\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We offer a limited warranty to ...nd can be reasonably estimated.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Stock-based Compensation\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We use the closing trading pric...based on historical experience.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Litigation, Investigation and Settlement Costs\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: We currently, are, and will lik...t be certain that these actions\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: or other third-party claims aga... us to record additional costs.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Foreign Currency Remeasurement\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We use the U.S. dollar as our f...date have not been significant.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Income Taxes\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We recognize federal, state and...omponent of income tax expense.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Net Income Per Share\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Basic net income per share is c...f diluted net income per share.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Cash and Cash Equivalents and Marketable Securities\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: We consider all highly liquid i...than not we will be required or\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: we intend to sell the securitie...solidated Statements of Income.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Fair Value of Financial Instruments\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: The carrying value of cash equi...lue are recognized in earnings.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Concentration of Credit Risk\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Financial instruments that pote...nsurance and letters of credit.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Inventories\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Inventory cost is computed on a...f obsolete or excess inventory.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Property and Equipment\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Property and equipment are stat...mated useful life of the asset.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Leases\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: We determine if an arrangement ...g lease assets and liabilities.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Goodwill\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Goodwill is subject to our annu... affecting the reporting units.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: The quantitative impairment tes... profitability of our business.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Intangible Assets and Other Long-Lived Assets\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Intangible assets primarily rep...would no longer be depreciated.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Business Combination\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We allocate the fair value of t...ation and expensed as incurred.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Investments in Non-Affiliated Entities\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Our investment in non-affiliate...solidated Statements of Income.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Recently Issued Accounting Pronouncements\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Recent Accounting Pronouncements Not Yet Adopted\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: In November 2023, the Financial...solidated Financial Statements.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 2 - Business Combination\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Termination of the Arm Share Purchase Agreement\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: In February 2022, NVIDIA and So...prepayment provided at signing.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 3 - Leases\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Our lease obligations primarily...een fiscal years 2025 and 2035.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Future minimum lease payments u...nuary 28, 2024, are as follows:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~12 rows, ~17 numbers, and 300 characters.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: In addition, we have operating ... and 2022 were not significant.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Other information related to leases was as follows:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~3 rows, ~9 numbers, and 236 characters.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: As of January 28, 2024, our ope...average discount rate of 3.21%.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 4 - Stock-Based Compensation\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Our stock-based compensation ex...arket-based PSUs, and our ESPP.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Our Consolidated Statements of ...cated to inventory, as follows:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~4 rows, ~15 numbers, and 202 characters.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Stock-based compensation capita...cal years 2024, 2023, and 2022.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The following is a summary of e...der our equity incentive plans:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~8 rows, ~21 numbers, and 416 characters.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: As of January 28, 2024, there w...d PSUs, and 0.8 years for ESPP.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The fair value of shares issued...with the following assumptions:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~5 rows, ~15 numbers, and 247 characters.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: For ESPP shares, the expected t...based on historical experience.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Equity Incentive Program\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We grant or have granted stock ...d converted them into our RSUs.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Amended and Restated 2007 Equity Incentive Plan\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: In 2007, our shareholders appro...ent of pre-determined criteria.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Amended and Restated 2012 Employee Stock Purchase Plan\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: In 2012, our shareholders appro...e issuance under the 2012 Plan.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Equity Award Activity\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The following is a summary of o...der our equity incentive plans:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~6 rows, ~15 numbers, and 343 characters.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: As of January 28, 2024 and Janu...and $5.6 billion, respectively.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 5 - Net Income Per Share\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The following is a reconciliati...ions for the periods presented:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~10 rows, ~26 numbers, and 490 characters.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: (1)    Calculated as net income...iluted weighted average shares.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 6 - Goodwill\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: As of January 28, 2024, the tot...that goodwill was not impaired.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 7 - Amortizable Intangible Assets\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The components of our amortizab...tangible assets are as follows:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~3 rows, ~21 numbers, and 367 characters.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: (1)    During the first quarter...to our acquisition of Mellanox.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Amortization expense associated...and $563 million, respectively.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The following table outlines th... assets as of January 28, 2024:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~8 rows, ~13 numbers, and 126 characters.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 8 - Cash Equivalents and Marketable Securities\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Our cash equivalents and market...able-for-sale” debt securities.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The following is a summary of c...ents and marketable securities:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~7 rows, ~36 numbers, and 520 characters.\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~7 rows, ~33 numbers, and 511 characters.\n",
" │ ├── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ │ ├── \u001b[1;34mTextElement\u001b[0m: The following tables provide th... in a continuous loss position:\n",
" │ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~4 rows, ~25 numbers, and 429 characters.\n",
" │ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~4 rows, ~25 numbers, and 438 characters.\n",
" │ │ ├── \u001b[1;34mTextElement\u001b[0m: The gross unrealized losses are...cant for all periods presented.\n",
" │ │ ├── \u001b[1;34mTextElement\u001b[0m: The amortized cost and estimate... below by contractual maturity.\n",
" │ │ └── \u001b[1;34mTableElement\u001b[0m: Table with ~3 rows, ~15 numbers, and 229 characters.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 9 - Fair Value of Financia...ents in Non-Affiliated Entities\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The fair values of our financia...ification on a quarterly basis.\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~20 rows, ~59 numbers, and 886 characters.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: (1)    These liabilities are ca...bt discount and issuance costs.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Investments in Non-Affiliated Entities\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Our investments in non-affiliat...solidated Statements of Income.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Adjustments to the carrying val...nt alternative were as follows:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~6 rows, ~8 numbers, and 244 characters.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: In the fourth quarter of fiscal...for fiscal years 2023 and 2022.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The following table summarizes ...er the measurement alternative:\n",
" │ └── \u001b[1;34mTableElement\u001b[0m: Table with ~2 rows, ~3 numbers, and 117 characters.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 10 - Balance Sheet Components\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Two customers accounted for 24%...balance as of January 29, 2023.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Certain balance sheet components are as follows:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~5 rows, ~11 numbers, and 161 characters.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: (1) In fiscal years 2024 and ...spectively, in cost of revenue.\n",
" │ ├── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~8 rows, ~17 numbers, and 410 characters.\n",
" │ │ ├── \u001b[1;34mTextElement\u001b[0m: (A)Land is a non-depreciable as...e as of the balance sheet date.\n",
" │ │ ├── \u001b[1;34mTextElement\u001b[0m: Depreciation expense for fiscal...and $258 million, respectively.\n",
" │ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~6 rows, ~13 numbers, and 223 characters.\n",
" │ │ └── \u001b[1;34mTextElement\u001b[0m: (1)As of January 28, 2024 and J...r current assets, respectively.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~12 rows, ~26 numbers, and 461 characters.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: (1)In fiscal years 2024 and 202..., related to customer advances.\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~7 rows, ~16 numbers, and 236 characters.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: (1)Income tax payable is compri...port for hardware and software.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Deferred Revenue\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The following table shows the c...ing fiscal years 2024 and 2023.\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~4 rows, ~10 numbers, and 214 characters.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Revenue recognized during fisca...corded and amounts that will be\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: invoiced in future periods. Rev...h a length of one year or less.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 11 - Derivative Financial Instruments\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: We enter into foreign currency ...ded in other income or expense.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The table below presents the no... forward contracts outstanding:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~2 rows, ~6 numbers, and 112 characters.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The unrealized gains and losses...ermined to be highly effective.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 12 - Debt\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Long-Term Debt\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The carrying value of our outst...interest rates were as follows:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~13 rows, ~53 numbers, and 614 characters.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: (1) In fiscal year 2024, we repaid the 0.309% Notes Due 2023.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: All our notes are unsecured sen...e, under the outstanding notes.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Commercial Paper\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We have a $575 million commerci...o commercial paper outstanding.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 13 - Commitments and Contingencies\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Purchase Obligations\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Our purchase obligations reflec...search and development efforts.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Total future purchase commitmen...anuary 28, 2024 are as follows:\n",
" │ └── \u001b[1;34mTableElement\u001b[0m: Table with ~7 rows, ~11 numbers, and 113 characters.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Accrual for Product Warranty Liabilities\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The estimated amount of product...ity consisted of the following:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~4 rows, ~15 numbers, and 179 characters.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: In fiscal years 2024 and 2023, ...ents for such indemnifications.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Litigation\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Securities Class Action and Derivative Lawsuits\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The plaintiffs in the putative ... States and the Supreme Court’s\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: resolution of the matter. On De...n Securities Litigation action.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Accounting for Loss Contingencies\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: As of January 28, 2024, we have...iquidity or financial position.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 14 - Income Taxes\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The income tax expense (benefit...axes consists of the following:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~11 rows, ~28 numbers, and 332 characters.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Income before income tax consists of the following:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~3 rows, ~12 numbers, and 155 characters.\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: The income tax expense (benefit...before income taxes as follows:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~11 rows, ~55 numbers, and 716 characters.\n",
" │ ├── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ │ ├── \u001b[1;34mTextElement\u001b[0m: The tax effect of temporary dif...iabilities are presented below:\n",
" │ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~19 rows, ~37 numbers, and 814 characters.\n",
" │ │ ├── \u001b[1;34mTextElement\u001b[0m: (1) Net deferred tax asset inc...ur Consolidated Balance Sheets.\n",
" │ │ └── \u001b[1;34mTextElement\u001b[0m: As of January 28, 2024, we inte...r be denied before utilization.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: A reconciliation of gross unrec...zed tax benefits is as follows:\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~7 rows, ~24 numbers, and 367 characters.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: Included in the balance of unre...fiscal years 2005 through 2023.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 15 - Shareholders’ Equity\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Capital Return Program\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: In August 2023, our Board of Di...authorized and unissued shares.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 16 - Employee Retirement Plans\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: We provide tax-qualified define...and $168 million, respectively.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Note 17 - Segment Information\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Our Chief Executive Officer, wh...s and the “All Other” category.\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~9 rows, ~24 numbers, and 403 characters.\n",
" │ ├── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~9 rows, ~22 numbers, and 448 characters.\n",
" │ │ ├── \u001b[1;34mTextElement\u001b[0m: Revenue by geographic areas is ...eographic areas was as follows:\n",
" │ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~6 rows, ~18 numbers, and 244 characters.\n",
" │ │ ├── \u001b[1;34mTextElement\u001b[0m: Revenue from sales to customers...for fiscal years 2023 and 2022.\n",
" │ │ ├── \u001b[1;34mTextElement\u001b[0m: The following table summarizes ...e specialized markets we serve:\n",
" │ │ └── \u001b[1;34mTableElement\u001b[0m: Table with ~7 rows, ~21 numbers, and 260 characters.\n",
" │ ├── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
" │ │ ├── \u001b[1;34mTextElement\u001b[0m: The following table presents su...oodwill, and intangible assets.\n",
" │ │ └── \u001b[1;34mTableElement\u001b[0m: Table with ~6 rows, ~12 numbers, and 169 characters.\n",
" │ ├── \u001b[1;34mTitleElement\u001b[0m: Schedule II – Valuation and Qualifying Accounts\n",
" │ │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~13 rows, ~47 numbers, and 619 characters.\n",
" │ │ └── \u001b[1;34mTextElement\u001b[0m: (1)Additions represent either e...n. (4)Represents sales returns.\n",
" │ └── \u001b[1;34mTitleElement\u001b[0m: Exhibit Index\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~28 rows, ~127 numbers, and 2587 characters.\n",
" │ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~22 rows, ~54 numbers, and 1993 characters.\n",
" │ └── \u001b[1;34mTextElement\u001b[0m: *  Filed herewith.+  Management...pressway, Santa Clara, CA 95051\n",
" └── \u001b[1;34mTitleElement\u001b[0m: Item 16. Form 10-K Summary\n",
" ├── \u001b[1;34mTextElement\u001b[0m: Not Applicable.\n",
" ├── \u001b[1;34mTitleElement\u001b[0m: Signatures\n",
" │ ├── \u001b[1;34mTextElement\u001b[0m: Pursuant to the requirements of...thorized, on February 21, 2024.\n",
" │ └── \u001b[1;34mTableElement\u001b[0m: Table with ~2 rows, ~0 numbers, and 93 characters.\n",
" └── \u001b[1;34mTitleElement\u001b[0m: Power of Attorney\n",
" ├── \u001b[1;34mTextElement\u001b[0m: KNOW ALL PERSONS BY THESE PRESE...ies and on the dates indicated.\n",
" └── \u001b[1;34mTableElement\u001b[0m: Table with ~33 rows, ~16 numbers, and 1145 characters.\n"
]
}
],
"source": [
"parser = sp.Edgar10QParser()\n",
"with warnings.catch_warnings():\n",
" warnings.filterwarnings(\"ignore\", message=\"Invalid section type for\")\n",
" elements: list = parser.parse(html)\n",
" \n",
"tree: sp.SemanticTree = sp.TreeBuilder().build(elements)\n",
"\n",
"demo_output: str = sp.render(tree)\n",
"#print('\\n'.join(demo_output.split('\\n')[:9999]))\n",
"print('\\n'.join(demo_output.split('\\n')[:]))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Item 1. Business\n",
"Our Company\n",
"Our Businesses\n",
"Our Markets\n",
"Data Center\n",
"Gaming\n",
"Professional Visualization\n",
"Automotive\n",
"Business Strategies\n",
"Sales and Marketing\n",
"Seasonality\n",
"Manufacturing\n",
"Competition\n",
"Patents and Proprietary Rights\n",
"Government Regulations\n",
"Sustainability and Governance\n",
"Climate Change\n",
"Human Capital Management\n",
"Recruitment\n",
"Development and Retention\n",
"Compensation, Benefits, and Well-Being\n",
"Diversity, Inclusion, and Belonging\n",
"Flexible Working Environment\n",
"Information About Our Executive Officers\n",
"Available Information\n",
"Item 1A. Risk Factors\n",
"Risk Factors Summary\n",
"Risks Related to Our Industry and Markets\n",
"Risks Related to Demand, Supply and Manufacturing\n",
"Risks Related to Our Global Operating Business\n",
"Risks Related to Regulatory, Legal, Our Stock and Other Matters\n",
"Risk Factors\n",
"Risks Related to Our Industry and Markets\n",
"Failure to meet the evolving needs of our industry and markets may adversely impact our financial results.\n",
"Competition could adversely impact our market share and financial results.\n",
"Risks Related to Demand, Supply and Manufacturing\n",
"Failure to estimate customer demand accurately has led and could lead to mismatches between supply and demand.\n",
"Dependency on third-party suppliers and their technology to manufacture, assemble, test, or package our products reduces our control over product quantity and quality, manufacturing yields, and product delivery schedules and could harm our business.\n",
"Defects in our products have caused and could cause us to incur significant expenses to remediate, which can damage our reputation and cause us to lose market share.\n",
"Risks Related to Our Global Operating Business\n",
"Adverse economic conditions may harm our business.\n",
"International sales and operations are a significant part of our business, which exposes us to risks that could harm our business.\n",
"Product, system security, and data protection breaches, as well as cyber-attacks, could disrupt our operations, reduce our expected revenue, increase our expenses, and significantly harm our business and reputation.\n",
"Business disruptions could harm our operations, lead to a decline in revenue and increase our costs.\n",
"Climate change may have a long-term impact on our business.\n",
"We may not be able to realize the potential benefits of business investments or acquisitions, and we may not be able to successfully integrate acquired companies, which could hurt our ability to grow our business, develop new products or sell our products.\n",
"We receive a significant amount of our revenue from a limited number of partners and distributors and we have a concentration of sales to customers who purchase directly or indirectly from us, and our revenue could be adversely affected if we lose or are prevented from selling to any of these customers.\n",
"If we are unable to attract, retain and motivate our executives and key employees, our business may be harmed.\n",
"Our business is dependent upon the proper functioning of our business processes and information systems and modification or interruption of such systems may disrupt our business, and internal controls.\n",
"Our operating results have in the past fluctuated and may in the future fluctuate, and if our operating results are below the expectations of securities analysts or investors, our stock price could decline.\n",
"Risks Related to Regulatory, Legal, Our Stock and Other Matters\n",
"Our operations could be affected by the complex laws, rules and regulations to which our business is subject, and political and other actions may adversely impact our business.\n",
"Increased scrutiny from shareholders, regulators and others regarding our corporate sustainability practices could result in additional costs or risks and adversely impact our reputation and willingness of customers and suppliers to do business with us.\n",
"Issues relating to the responsible use of our technologies, including AI in our offerings, may result in reputational or financial harm and liability.\n",
"Actions to adequately protect our IP rights could result in substantial costs to us and our ability to compete could be harmed if we are unsuccessful or if we are prohibited from making or selling our products.\n",
"We are subject to stringent and changing data privacy and security laws, rules, regulations and other obligations. These areas could damage our reputation, deter current and potential customers, affect our product design, or result in legal or regulatory proceedings and liability.\n",
"We may have exposure to additional tax liabilities and our operating results may be adversely impacted by changes in tax laws, higher than expected tax rates and other tax-related factors.\n",
"Our business is exposed to the risks associated with litigation, investigations and regulatory proceedings.\n",
"Our indebtedness could adversely affect our financial position and cash flows from operations, and prevent us from implementing our strategy or fulfilling our contractual obligations.\n",
"Delaware law and our certificate of incorporation, bylaws and agreement with Microsoft could delay or prevent a change in control.\n",
"Item 1B. Unresolved Staff Comments\n",
"Item 1C. Cybersecurity\n",
"Risk management and strategy\n",
"Governance\n",
"Item 2. Properties\n",
"Our headquarters is in Santa Clara, California. We own and lease approximately 3 million square feet of office and building space for our corporate headquarters. In addition, we lease data center space in Santa Clara, California. We also own and lease facilities for data centers, research and development, and/or sales and administrative purposes throughout the U.S. and in various international locations, primarily in China, India, Israel, and Taiwan. We believe our existing facilities, both owned and leased, are in good condition and suitable for the conduct of our business. We do not identify or allocate assets by operating segment. For additional information regarding obligations under leases, refer to Note 3 of the Notes to the Consolidated Financial Statements in Part IV, Item 15 of this Annual Report on Form 10-K, which information is hereby incorporated by reference.\n",
"Item 3. Legal Proceedings\n",
"Please see Note 13 of the Notes to the Consolidated Financial Statements in Part IV, Item 15 of this Annual Report on Form 10-K for a discussion of our legal proceedings.\n",
"Item 4. Mine Safety Disclosures\n",
"Not applicable.\n",
"Item 5. Market for Registrant's Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities\n",
"Our common stock is traded on the Nasdaq Global Select Market under the symbol NVDA. Public trading of our common stock began on January 22, 1999. Prior to that, there was no public market for our common stock. As of February 16, 2024, we had approximately 382 registered shareholders, not including those shares held in street or nominee name.\n",
"Issuer Purchases of Equity Securities\n",
"Restricted Stock Unit Share Withholding\n",
"Stock Performance Graphs\n",
"Item 6. [Reserved]\n",
"Item 7. Management's Discussion and Analysis of Financial Condition and Results of Operations\n",
"Overview\n",
"Our Company and Our Businesses\n",
"Recent Developments, Future Objectives and Challenges\n",
"Demand and Supply, Product Transitions, and New Products and Business Models\n",
"Global Trade\n",
"Macroeconomic Factors\n",
"Israel and Hamas Conflict\n",
"Fiscal Year 2024 Summary\n",
"Market Platform Highlights\n",
"Critical Accounting Estimates\n",
"Inventories\n",
"Income Taxes\n",
"Revenue Recognition\n",
"Revenue Allowances\n",
"License and Development Arrangements\n",
"Contracts with Multiple Performance Obligations\n",
"Change in Accounting Estimate\n",
"Results of Operations\n",
"Reportable Segments\n",
"Revenue by Reportable Segments\n",
"Operating Income by Reportable Segments\n",
"Concentration of Revenue\n",
"Gross Profit and Gross Margin\n",
"Operating Expenses\n",
"Acquisition Termination Cost\n",
"Other Income (Expense), Net\n",
"Income Taxes\n",
"Liquidity and Capital Resources\n",
"Liquidity\n",
"Capital Return to Shareholders\n",
"Outstanding Indebtedness and Commercial Paper Program\n",
"Material Cash Requirements and Other Obligations\n",
"Climate Change\n",
"Adoption of New and Recently Issued Accounting Pronouncements\n",
"Item 7A. Quantitative and Qualitative Disclosures about Market Risk\n",
"Investment and Interest Rate Risk\n",
"Foreign Exchange Rate Risk\n",
"Item 8. Financial Statements and Supplementary Data\n",
"Item 9. Changes in and Disagreements with Accountants on Accounting and Financial Disclosure\n",
"Item 9A. Controls and Procedures\n",
"Controls and Procedures\n",
"Disclosure Controls and Procedures\n",
"Management’s Annual Report on Internal Control Over Financial Reporting\n",
"Changes in Internal Control Over Financial Reporting\n",
"Inherent Limitations on Effectiveness of Controls\n",
"Item 9B.  Other Information\n",
"Item 9C. Disclosure Regarding Foreign Jurisdictions that Prevent Inspections\n",
"Part III\n",
"Item 10. Directors, Executive Officers and Corporate Governance\n",
"Identification of Directors\n",
"Identification of Executive Officers\n",
"Identification of Audit Committee and Financial Experts\n",
"Material Changes to Procedures for Recommending Directors\n",
"Delinquent Section 16(a) Reports\n",
"Code of Conduct\n",
"Item 11. Executive Compensation\n",
"Item 12. Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters\n",
"Ownership of NVIDIA Securities\n",
"Equity Compensation Plan Information\n",
"Item 13. Certain Relationships and Related Transactions, and Director Independence\n",
"Item 14. Principal Accountant Fees and Services\n",
"Part IV\n",
"Item 15. Exhibit and Financial Statement Schedules\n",
"Note 1 - Organization and Summary of Significant Accounting Policies\n",
"Our Company\n",
"Fiscal Year\n",
"Principles of Consolidation\n",
"Use of Estimates\n",
"Revenue Recognition\n",
"Product Sales Revenue\n",
"License and Development Arrangements\n",
"Software Licensing\n",
"Cloud Services\n",
"Contracts with Multiple Performance Obligations\n",
"Product Warranties\n",
"Stock-based Compensation\n",
"Litigation, Investigation and Settlement Costs\n",
"Foreign Currency Remeasurement\n",
"Income Taxes\n",
"Net Income Per Share\n",
"Cash and Cash Equivalents and Marketable Securities\n",
"Fair Value of Financial Instruments\n",
"Concentration of Credit Risk\n",
"Inventories\n",
"Property and Equipment\n",
"Leases\n",
"Goodwill\n",
"Intangible Assets and Other Long-Lived Assets\n",
"Business Combination\n",
"Investments in Non-Affiliated Entities\n",
"Recently Issued Accounting Pronouncements\n",
"Recent Accounting Pronouncements Not Yet Adopted\n",
"Note 2 - Business Combination\n",
"Termination of the Arm Share Purchase Agreement\n",
"Note 3 - Leases\n",
"Note 4 - Stock-Based Compensation\n",
"Equity Incentive Program\n",
"Amended and Restated 2007 Equity Incentive Plan\n",
"Amended and Restated 2012 Employee Stock Purchase Plan\n",
"Equity Award Activity\n",
"Note 5 - Net Income Per Share\n",
"Note 6 - Goodwill\n",
"Note 7 - Amortizable Intangible Assets\n",
"Note 8 - Cash Equivalents and Marketable Securities\n",
"Note 9 - Fair Value of Financial Assets and Liabilities and Investments in Non-Affiliated Entities\n",
"Investments in Non-Affiliated Entities\n",
"Note 10 - Balance Sheet Components\n",
"Deferred Revenue\n",
"Note 11 - Derivative Financial Instruments\n",
"Note 12 - Debt\n",
"Long-Term Debt\n",
"Commercial Paper\n",
"Note 13 - Commitments and Contingencies\n",
"Purchase Obligations\n",
"Accrual for Product Warranty Liabilities\n",
"Litigation\n",
"Securities Class Action and Derivative Lawsuits\n",
"Accounting for Loss Contingencies\n",
"Note 14 - Income Taxes\n",
"Note 15 - Shareholders’ Equity\n",
"Capital Return Program\n",
"Note 16 - Employee Retirement Plans\n",
"Note 17 - Segment Information\n",
"Item 16. Form 10-K Summary\n"
]
}
],
"source": [
"# Flatten the first three levels of the tree, including items at the second and lower levels and their children\n",
"# (removing the meta-top sections: PART I, ...)\n",
"top_level_sections = [\n",
" section\n",
" for part in sp.TreeBuilder().build(elements)\n",
" for item in part.children\n",
" for section in ([item] + item.children) # Include the item itself and its children\n",
"]\n",
"\n",
"# Print top_level_sections\n",
"for section in top_level_sections:\n",
" #print(section)\n",
" print(section.text)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"# Filter Segment Note\n",
"target_top_level_sections = [\n",
" k for k in top_level_sections if (\n",
" (\"Note\" in k.semantic_element.text and \n",
" \"Segment\" in k.semantic_element.text)\n",
" )\n",
"]\n",
"#assert len(target_top_level_sections) == 1\n",
"target_top_level_section = target_top_level_sections[0]\n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Note 17 - Segment Information\n",
"TreeNode(parent=TreeNode(parent=TreeNode(parent=None, children=2), children=125), children=6)\n",
"\n",
"\n",
"['MIN_LEVEL', '__abstractmethods__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_abc_impl', 'contains_words', 'create_from_element', 'get_source_code', 'get_summary', 'html_tag', 'log_init', 'text', 'to_dict']\n",
"['__abstractmethods__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_abc_impl', 'contains_words', 'create_from_element', 'get_source_code', 'get_summary', 'html_tag', 'log_init', 'text', 'to_dict']\n"
]
}
],
"source": [
"# Review the first selected section\n",
"\n",
"print(target_top_level_section.text)\n",
"print(target_top_level_section)\n",
"print(\"\\n\")\n",
"print(dir(sp.TitleElement))\n",
"print(dir(sp.SupplementaryText))"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{0: '##', 2: '###', 3: '####', 4: '#####', 5: '######'}"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Convert to markdown (First step: Get levels)\n",
"levels = sorted(\n",
" {\n",
" k.semantic_element.level\n",
" for k in target_top_level_section.parent.get_descendants()\n",
" if isinstance(k.semantic_element, sp.TitleElement)\n",
" }\n",
")\n",
"level_to_markdown = {level: \"#\" * (i + 2) for i, level in enumerate(levels)}\n",
"level_to_markdown\n",
"\n",
"#levels"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"# Convert to markdown (Approach 1: Extract text and only summarize tables)\n",
"\n",
"markdown = \"\"\n",
"markdown += f\"# {target_top_level_section.semantic_element.text}\\n\"\n",
"for node in target_top_level_section.get_descendants():\n",
" element = node.semantic_element\n",
" #if isinstance(element, sp.TextElement):\n",
" if isinstance(element, (sp.TextElement, sp.SupplementaryText)):\n",
" markdown += f\"{element.text}\\n\"\n",
" elif isinstance(element, sp.TitleElement):\n",
" if element.text.startswith(\"Table of Content\"):\n",
" markdown += f\"{level_to_markdown[element.level]} {element.text}\\n\"\n",
" else: \n",
" markdown += f\"{level_to_markdown[element.level+2]} {element.text}\\n\"\n",
" elif isinstance(element, sp.TableElement):\n",
" #markdown += f\"[{element.table_to_markdown()}]\\n\" # Get the markdown table\n",
" markdown += f\"[{element.get_summary()}]\\n\" # Get the table summary only\n",
"\n",
"# Define function for reviewing the conversion results\n",
"# !!!Note: max_line_length determines where to truncate a long paragraph\n",
"# but this should not affect the underlying tree already constructed\n",
"def get_lines(text, start=None, end=None, max_line_length=5999): # 4999 avoids truncation of long paragraphs\n",
" lines = text.split(\"\\n\")[start:end]\n",
" return \"\\n\".join(\n",
" line if len(line) <= max_line_length else line[:max_line_length] + \"...\"\n",
" for line in lines\n",
" )\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"# Note 17 - Segment Information\n",
"Our Chief Executive Officer, who is considered to be our chief operating decision maker, or CODM, reviews financial information presented on an operating segment basis for purposes of making decisions and assessing financial performance.The Compute & Networking segment includes our Data Center accelerated computing platform; networking; automotive artificial intelligence, or AI, Cockpit, autonomous driving development agreements, and autonomous vehicle solutions; electric vehicle computing platforms; Jetson for robotics and other embedded platforms; NVIDIA AI Enterprise and other software; and DGX Cloud.The Graphics segment includes GeForce GPUs for gaming and PCs, the GeForce NOW game streaming service and related infrastructure, and solutions for gaming platforms; Quadro/NVIDIA RTX GPUs for enterprise workstation graphics; virtual GPU software for cloud-based visual and virtual computing; automotive platforms for infotainment systems; and Omniverse Enterprise software for building and operating 3D internet applications.Operating results by segment include costs or expenses that are directly attributable to each segment, and costs or expenses that are leveraged across our unified architecture and therefore allocated between our two segments.The “All Other” category includes the expenses that our CODM does not assign to either Compute & Networking or Graphics for purposes of making operating decisions or assessing financial performance. The expenses include stock-based compensation expense, corporate infrastructure and support costs, acquisition-related and other costs, intellectual property related, or IP-related costs, acquisition termination cost, and other non-recurring charges and benefits that our CODM deems to be enterprise in nature.Our CODM does not review any information regarding total assets on a reportable segment basis. Depreciation and amortization expense directly attributable to each reportable segment is included in operating results for each segment. However, our CODM does not evaluate depreciation and amortization expense by operating segment and, therefore, it is not separately presented. There is no intersegment revenue. The accounting policies for segment reporting are the same as for our consolidated financial statements. The table below presents details of our reportable segments and the “All Other” category.\n",
"[Table with ~9 rows, ~24 numbers, and 403 characters.]\n",
"#### Table of ContentsNVIDIA Corporation and SubsidiariesNotes to the Consolidated Financial Statements(Continued)\n",
"[Table with ~9 rows, ~22 numbers, and 448 characters.]\n",
"Revenue by geographic areas is designated based upon the billing location of the customer. End customer location may be different than our customer’s billing location. Revenue by geographic areas was as follows:\n",
"[Table with ~6 rows, ~18 numbers, and 244 characters.]\n",
"Revenue from sales to customers outside of the United States accounted for 56%, 69%, and 84% of total revenue for fiscal years 2024, 2023, and 2022, respectively. The increase in revenue to the United States for fiscal year 2024 was primarily due to higher U.S.-based Compute & Networking segment demand.Sales to one customer represented 13% of total revenue for fiscal year 2024, which was attributable to the Compute & Networking segment. No customer represented 10% or more of total revenue for fiscal years 2023 and 2022.\n",
"The following table summarizes information pertaining to our revenue by each of the specialized markets we serve:\n",
"[Table with ~7 rows, ~21 numbers, and 260 characters.]\n",
"#### Table of ContentsNVIDIA Corporation and SubsidiariesNotes to the Consolidated Financial Statements(Continued)\n",
"The following table presents summarized information for long-lived assets by country. Long-lived assets consist of property and equipment and exclude other assets, operating lease assets, goodwill, and intangible assets.\n",
"[Table with ~6 rows, ~12 numbers, and 169 characters.]\n",
"###### Schedule II – Valuation and Qualifying Accounts\n",
"[Table with ~13 rows, ~47 numbers, and 619 characters.]\n",
"(1)Additions represent either expense or acquired balances and deductions represent write-offs.(2)Additions represent estimated product returns charged as a reduction to revenue or an acquired balance.(3)Additional valuation allowance on deferred tax assets not likely to be realized. Additions represent additional valuation allowance on capital loss carryforwards, and certain state and other deferred tax assets. Deductions represent the release of valuation allowance on certain state deferred tax assets. Refer to Note 14 of the Notes to the Consolidated Financial Statements in Part IV, Item 15 of this Annual Report on Form 10-K for additional information. (4)Represents sales returns.\n",
"###### Exhibit Index\n",
"[Table with ~28 rows, ~127 numbers, and 2587 characters.]\n",
"[Table with ~22 rows, ~54 numbers, and 1993 characters.]\n",
"*  Filed herewith.+  Management contract or compensatory plan or arrangement.# In accordance with Item 601(b)(32)(ii) of Regulation S-K and SEC Release Nos. 33-8238 and 34-47986, Final Rule: Management's Reports on Internal Control Over Financial Reporting and Certification of Disclosure in Exchange Act Periodic Reports, the certifications furnished in Exhibits 32.1 and 32.2 hereto are deemed to accompany this Annual Report on Form 10-K and will not be deemed “filed” for purpose of Section 18 of the Exchange Act. Such certifications will not be deemed to be incorporated by reference into any filing under the Securities Act or the Exchange Act, except to the extent that the registrant specifically incorporates it by reference.^ Certain exhibits and schedules have been omitted in accordance with Regulation S-K Item 601(a)(5). Copies of above exhibits not contained herein are available to any shareholder upon written request to:Investor Relations: NVIDIA Corporation, 2788 San Tomas Expressway, Santa Clara, CA 95051\n",
"\n"
]
}
],
"source": [
"# Review conversion results\n",
"\n",
"# !!!Note: The conversion quality is pretty high though not perfect\n",
"# For example, \n",
"# - some multiple heading lines are merged into one line\n",
"# - some separate paragraphs are merged into one\n",
"# - table summary counts only the \"content\" rows (with non-empty cells in the first column), \n",
"# ignoring potentially multiple header rows\n",
"# For conversion approach 2 (i.e., full table, not just table summary): \n",
"# - two leading empty columns are added to the table\n",
"# - converted markdown tables have no row divider below the column-header rows, \n",
"# causing incorrect rendering of the markdown table \n",
"# - no blank line precedes a table (another rendering issue?), \n",
"# instead a pair of surrounding square brackets\n",
"\n",
"print(get_lines(markdown))\n",
"\n",
"#print(get_lines(markdown, end=13))\n",
"# end=13 specifies processing lines up to the 13th line (inclusive)\n",
"#print(\"...\")\n",
"#print(get_lines(markdown, start=-13))\n",
"# start=-13 means start processing from the 13th line from the end \n",
"# (negative indexing typically counts from the end in Python)\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"# Note 17 - Segment Information\n",
"Our Chief Executive Officer, who is considered to be our chief operating decision maker, or CODM, reviews financial information presented on an operating segment basis for purposes of making decisions and assessing financial performance.The Compute & Networking segment includes our Data Center accelerated computing platform; networking; automotive artificial intelligence, or AI, Cockpit, autonomous driving development agreements, and autonomous vehicle solutions; electric vehicle computing platforms; Jetson for robotics and other embedded platforms; NVIDIA AI Enterprise and other software; and DGX Cloud.The Graphics segment includes GeForce GPUs for gaming and PCs, the GeForce NOW game streaming service and related infrastructure, and solutions for gaming platforms; Quadro/NVIDIA RTX GPUs for enterprise workstation graphics; virtual GPU software for cloud-based visual and virtual computing; automotive platforms for infotainment systems; and Omniverse Enterprise software for building and operating 3D internet applications.Operating results by segment include costs or expenses that are directly attributable to each segment, and costs or expenses that are leveraged across our unified architecture and therefore allocated between our two segments.The “All Other” category includes the expenses that our CODM does not assign to either Compute & Networking or Graphics for purposes of making operating decisions or assessing financial performance. The expenses include stock-based compensation expense, corporate infrastructure and support costs, acquisition-related and other costs, intellectual property related, or IP-related costs, acquisition termination cost, and other non-recurring charges and benefits that our CODM deems to be enterprise in nature.Our CODM does not review any information regarding total assets on a reportable segment basis. Depreciation and amortization expense directly attributable to each reportable segment is included in operating results for each segment. However, our CODM does not evaluate depreciation and amortization expense by operating segment and, therefore, it is not separately presented. There is no intersegment revenue. The accounting policies for segment reporting are the same as for our consolidated financial statements. The table below presents details of our reportable segments and the “All Other” category.\n",
"[| | | | | | Compute & Networking | | | | | | Graphics | | | | | | All Other | | | | | | Consolidated |\n",
"| | | | | | | | | | | | | | | | | | | | | | | | (In millions) |\n",
"| | | Year Ended Jan 28, 2024: | | | | | | | | | | | | | | | | | | | | | |\n",
"| | | Revenue | $ | 47405.0 | | | | | $ | 13517.0 | | | | | $ | — | | | | | $ | 60922.0 | |\n",
"| | | Operating income (loss) | $ | 32016.0 | | | | | $ | 5846.0 | | | | | $ | (4,890) | | | | | $ | 32972.0 | |\n",
"| | | Year Ended Jan 29, 2023: | | | | | | | | | | | | | | | | | | | | | |\n",
"| | | Revenue | $ | 15068.0 | | | | | $ | 11906.0 | | | | | $ | — | | | | | $ | 26974.0 | |\n",
"| | | Operating income (loss) | $ | 5083.0 | | | | | $ | 4552.0 | | | | | $ | (5,411) | | | | | $ | 4224.0 | |\n",
"| | | Year Ended Jan 30, 2022: | | | | | | | | | | | | | | | | | | | | | |\n",
"| | | Revenue | $ | 11046.0 | | | | | $ | 15868.0 | | | | | $ | — | | | | | $ | 26914.0 | |\n",
"| | | Operating income (loss) | $ | 4598.0 | | | | | $ | 8492.0 | | | | | $ | (3,049) | | | | | $ | 10041.0 | |]\n",
"#### Table of ContentsNVIDIA Corporation and SubsidiariesNotes to the Consolidated Financial Statements(Continued)\n",
"[| | | | | | | | | | | | | | | | | | Year Ended |\n",
"| | | | | | Jan 28, 2024 | | | | | | Jan 29, 2023 | | | | | | Jan 30, 2022 |\n",
"| | | | | | | | | | | | | | | | | | (In millions) |\n",
"| | | Reconciling items included in \"All Other\" category: | | | | | | | | | | | | | | | |\n",
"| | | Stock-based compensation expense | $ | (3,549) | | | | | $ | (2,710) | | | | | $ | (2,004) | |\n",
"| | | Unallocated cost of revenue and operating expenses | | (728) | | | | | | (595) | | | | | | (399) | |\n",
"| | | Acquisition-related and other costs | | (583) | | | | | | (674) | | | | | | (636) | |\n",
"| | | IP-related and legal settlement costs | | (40) | | | | | | (23) | | | | | | (10) | |\n",
"| | | Restructuring costs and other | | — | | | | | | (54) | | | | | | — | |\n",
"| | | Acquisition termination cost | | — | | | | | | (1,353) | | | | | | — | |\n",
"| | | Other | | 10 | | | | | | (2) | | | | | | — | |\n",
"| | | Total | $ | (4,890) | | | | | $ | (5,411) | | | | | $ | (3,049) | |]\n",
"Revenue by geographic areas is designated based upon the billing location of the customer. End customer location may be different than our customer’s billing location. Revenue by geographic areas was as follows:\n",
"[| | | | | | | | | | | | | | | | | | Year Ended |\n",
"| | | | | | Jan 28, 2024 | | | | | | Jan 29, 2023 | | | | | | Jan 30, 2022 |\n",
"| | | Revenue: | | | | | | | | | | | | | | | (In millions) |\n",
"| | | United States | $ | 26966.0 | | | | | $ | 8292.0 | | | | | $ | 4349.0 | |\n",
"| | | Taiwan | | 13405.0 | | | | | | 6986.0 | | | | | | 8544.0 | |\n",
"| | | China (including Hong Kong) | | 10306.0 | | | | | | 5785.0 | | | | | | 7111.0 | |\n",
"| | | Other countries | | 10245.0 | | | | | | 5911.0 | | | | | | 6910.0 | |\n",
"| | | Total revenue | $ | 60922.0 | | | | | $ | 26974.0 | | | | | $ | 26914.0 | |]\n",
"Revenue from sales to customers outside of the United States accounted for 56%, 69%, and 84% of total revenue for fiscal years 2024, 2023, and 2022, respectively. The increase in revenue to the United States for fiscal year 2024 was primarily due to higher U.S.-based Compute & Networking segment demand.Sales to one customer represented 13% of total revenue for fiscal year 2024, which was attributable to the Compute & Networking segment. No customer represented 10% or more of total revenue for fiscal years 2023 and 2022.\n",
"The following table summarizes information pertaining to our revenue by each of the specialized markets we serve:\n",
"[| | | | | | | | | | | | | | | | | | Year Ended |\n",
"| | | | | | Jan 28, 2024 | | | | | | Jan 29, 2023 | | | | | | Jan 30, 2022 |\n",
"| | | Revenue: | | | | | | | | | | | | | | | (In millions) |\n",
"| | | Data Center | $ | 47525.0 | | | | | $ | 15005.0 | | | | | $ | 10613.0 | |\n",
"| | | Gaming | | 10447.0 | | | | | | 9067.0 | | | | | | 12462.0 | |\n",
"| | | Professional Visualization | | 1553.0 | | | | | | 1544.0 | | | | | | 2111.0 | |\n",
"| | | Automotive | | 1091.0 | | | | | | 903.0 | | | | | | 566.0 | |\n",
"| | | OEM and Other | | 306.0 | | | | | | 455.0 | | | | | | 1162.0 | |\n",
"| | | Total revenue | $ | 60922.0 | | | | | $ | 26974.0 | | | | | $ | 26914.0 | |]\n",
"#### Table of ContentsNVIDIA Corporation and SubsidiariesNotes to the Consolidated Financial Statements(Continued)\n",
"The following table presents summarized information for long-lived assets by country. Long-lived assets consist of property and equipment and exclude other assets, operating lease assets, goodwill, and intangible assets.\n",
"[| | | | | | Jan 28, 2024 | | | | | | Jan 29, 2023 |\n",
"| | | Long-lived assets: | | | | | | | | | (In millions) |\n",
"| | | United States | $ | 2595.0 | | | | | $ | 2587.0 | |\n",
"| | | Taiwan | | 773.0 | | | | | | 702.0 | |\n",
"| | | Israel | | 325.0 | | | | | | 283.0 | |\n",
"| | | Other countries | | 221.0 | | | | | | 235.0 | |\n",
"| | | Total long-lived assets | $ | 3914.0 | | | | | $ | 3807.0 | |]\n",
"###### Schedule II – Valuation and Qualifying Accounts\n",
"[| | | Description | | | | | | Balance at Beginning of Period | | | | | | Additions | | | | | | Deductions | | | | | | Balance at End of Period |\n",
"| | | | | | | | | | | | | | | | | | | | | | | | | | | (In millions) |\n",
"| | | Fiscal year 2024 | | | | | | | | | | | | | | | | | | | | | | | | |\n",
"| | | Allowance for doubtful accounts | | | | $ | 4.0 | | | | | $ | — | | | | (1) | $ | — | | | | (1) | $ | 4.0 | |\n",
"| | | Sales return allowance | | | | $ | 26.0 | | | | | $ | 213 | | | | (2) | $ | (130) | | | | (4) | $ | 109.0 | |\n",
"| | | Deferred tax valuation allowance | | | | $ | 1484.0 | | | | | $ | 162 | | | | (3) | $ | (94) | | | | (3) | $ | 1552.0 | |\n",
"| | | Fiscal year 2023 | | | | | | | | | | | | | | | | | | | | | | | | |\n",
"| | | Allowance for doubtful accounts | | | | $ | 4.0 | | | | | $ | — | | | | (1) | $ | — | | | | (1) | $ | 4.0 | |\n",
"| | | Sales return allowance | | | | $ | 13.0 | | | | | $ | 104 | | | | (2) | $ | (91) | | | | (4) | $ | 26.0 | |\n",
"| | | Deferred tax valuation allowance | | | | $ | 907.0 | | | | | $ | 577 | | | | (3) | $ | — | | | | | $ | 1484.0 | |\n",
"| | | Fiscal year 2022 | | | | | | | | | | | | | | | | | | | | | | | | |\n",
"| | | Allowance for doubtful accounts | | | | $ | 4.0 | | | | | $ | — | | | | (1) | $ | — | | | | (1) | $ | 4.0 | |\n",
"| | | Sales return allowance | | | | $ | 17.0 | | | | | $ | 19 | | | | (2) | $ | (23) | | | | (4) | $ | 13.0 | |\n",
"| | | Deferred tax valuation allowance | | | | $ | 728.0 | | | | | $ | 179 | | | | (3) | $ | — | | | | | $ | 907.0 | |]\n",
"(1)Additions represent either expense or acquired balances and deductions represent write-offs.(2)Additions represent estimated product returns charged as a reduction to revenue or an acquired balance.(3)Additional valuation allowance on deferred tax assets not likely to be realized. Additions represent additional valuation allowance on capital loss carryforwards, and certain state and other deferred tax assets. Deductions represent the release of valuation allowance on certain state deferred tax assets. Refer to Note 14 of the Notes to the Consolidated Financial Statements in Part IV, Item 15 of this Annual Report on Form 10-K for additional information. (4)Represents sales returns.\n",
"###### Exhibit Index\n",
"[| | | | | | | | | | | | | | | | | | | | | Incorporated by Reference | | | | | | | | | | |\n",
"| | | Exhibit No. | | | | | | Exhibit Description | | | | | | Schedule/Form | | | | | | | | | | Exhibit | | | | | | Filing Date |\n",
"| | | 2.1 | | | | | | Agreement and Plan of Merger, dated March 10, 2019, by and among NVIDIA Corporation, NVIDIA International Holdings Inc., Mellanox Technologies Ltd. and Teal Barvaz Ltd. | | | | | | 8-K | | | | | | | | | | 2.1 | | | | | | 3/11/2019 |\n",
"| | | 2.2^ | | | | | | Share Purchase Agreement, dated September 13, 2020, by and among NVIDIA, NVIDIA Holdings, Arm, SoftBank, and Vision Fund | | | | | | 8-K | | | | | | | | | | 2.1 | | | | | | 9/14/2020 |\n",
"| | | 3.1 | | | | | | Restated Certificate of Incorporation | | | | | | 10-K | | | | | | | | | | 3.1 | | | | | | 3/18/2022 |\n",
"| | | 3.2 | | | | | | Amendment to Restated Certificate of Incorporation of NVIDIA Corporation | | | | | | 8-K | | | | | | | | | | 3.1 | | | | | | 6/6/2022 |\n",
"| | | 3.3 | | | | | | Bylaws of NVIDIA Corporation, Amended and Restated as of March 2, 2023 | | | | | | 8-K | | | | | | | | | | 3.1 | | | | | | 3/8/2023 |\n",
"| | | 4.1 | | | | | | Reference is made to Exhibits 3.1, 3.2 and 3.3 | | | | | | | | | | | | | | | | | | | | | | |\n",
"| | | 4.2 | | | | | | Specimen Stock Certificate | | | | | | S-1/A | | | | | | | | | | 4.2 | | | | | | 4/24/1998 |\n",
"| | | 4.3 | | | | | | Indenture, dated as of September 16, 2016, by and between the Company and Computershare Trust Company, N.A., as successor to Wells Fargo Bank, National Association, as Trustee | | | | | | 8-K | | | | | | | | | | 4.1 | | | | | | 9/16/2016 |\n",
"| | | 4.4 | | | | | | Officers’ Certificate, dated as of September 16, 2016 | | | | | | 8-K | | | | | | | | | | 4.2 | | | | | | 9/16/2016 |\n",
"| | | 4.5 | | | | | | Form of 2026 Note | | | | | | 8-K | | | | | | | | | | Annex B-1 to Exhibit 4.2 | | | | | | 9/16/2016 |\n",
"| | | 4.6 | | | | | | Description of Securities | | | | | | 10-K | | | | | | | | | | 4.6 | | | | | | 2/24/2023 |\n",
"| | | 4.7 | | | | | | Officers’ Certificate, dated as of March 31, 2020 | | | | | | 8-K | | | | | | | | | | 4.2 | | | | | | 3/31/2020 |\n",
"| | | 4.8 | | | | | | Form of 2030 Note | | | | | | 8-K | | | | | | | | | | Annex A-1 to Exhibit 4.2 | | | | | | 3/31/2020 |\n",
"| | | 4.9 | | | | | | Form of 2040 Note | | | | | | 8-K | | | | | | | | | | Annex B-1 to Exhibit 4.2 | | | | | | 3/31/2020 |\n",
"| | | 4.10 | | | | | | Form of 2050 Note | | | | | | 8-K | | | | | | | | | | Annex C-1 to Exhibit 4.2 | | | | | | 3/31/2020 |\n",
"| | | 4.11 | | | | | | Form of 2060 Note | | | | | | 8-K | | | | | | | | | | Annex D-1 to Exhibit 4.2 | | | | | | 3/31/2020 |\n",
"| | | 4.12 | | | | | | Officers' Certificate, dated as of June 16, 2021 | | | | | | 8-K | | | | | | | | | | 4.2 | | | | | | 6/16/2021 |\n",
"| | | 4.13 | | | | | | Form of 2023 Note | | | | | | 8-K | | | | | | | | | | Annex A-1 to Exhibit 4.2 | | | | | | 6/16/2021 |\n",
"| | | 4.14 | | | | | | Form of 2024 Note | | | | | | 8-K | | | | | | | | | | Annex B-1 to Exhibit 4.2 | | | | | | 6/16/2021 |\n",
"| | | 4.15 | | | | | | Form of 2028 Note | | | | | | 8-K | | | | | | | | | | Annex C-1 to Exhibit 4.2 | | | | | | 6/16/2021 |\n",
"| | | 4.16 | | | | | | Form of 2031 Note | | | | | | 8-K | | | | | | | | | | Annex D-1 to Exhibit 4.2 | | | | | | 6/16/2021 |\n",
"| | | 10.1 | | | | | | Form of Indemnity Agreement between NVIDIA Corporation and each of its directors and officers | | | | | | 8-K | | | | | | | | | | 10.1 | | | | | | 3/7/2006 |\n",
"| | | 10.2+ | | | | | | Amended and Restated 2007 Equity Incentive Plan | | | | | | 10-K | | | | | | | | | | 10.2 | | | | | | 2/24/2023 |\n",
"| | | 10.3+ | | | | | | Amended and Restated 2007 Equity Incentive Plan - Non-Employee Director Deferred Restricted Stock Unit Grant Notice and Deferred Restricted Stock Unit Agreement (2016) | | | | | | 10-K | | | | | | | | | | 10.26 | | | | | | 3/12/2015 |\n",
"| | | 10.4+ | | | | | | Amended and Restated 2007 Equity Incentive Plan - Non-Employee Director Restricted Stock Unit Grant Notice and Restricted Stock Unit Agreement (2016) | | | | | | 10-K | | | | | | | | | | 10.27 | | | | | | 3/12/2015 |\n",
"| | | 10.5+ | | | | | | Amended and Restated 2007 Equity Incentive Plan - Global Performance-Based Restricted Stock Unit Grant Notice and Performance-Based Restricted Stock Unit Agreement (2019) | | | | | | 8-K | | | | | | | | | | 10.1 | | | | | | 3/11/2019 |\n",
"| | | 10.6+ | | | | | | Amended and Restated 2007 Equity Incentive Plan – Global Restricted Stock Unit Grant Notice and Global Restricted Stock Unit Agreement (2020) | | | | | | 10-Q | | | | | | | | | | 10.2 | | | | | | 5/21/2020 |]\n",
"[| | | 10.7+ | | | | | | Amended and Restated 2007 Equity Incentive Plan – Global Restricted Stock Unit Grant Notice and Global Restricted Stock Unit Agreement (2021) | | | | | | 10-Q | | | | | | | | | | 10.2 | | | | | | 5/26/2021 |\n",
"| | | 10.8+ | | | | | | Amended and Restated 2007 Equity Incentive Plan – Global Restricted Stock Unit Grant Notice and Global Restricted Stock Unit Agreement (2022) | | | | | | 10-K | | | | | | | | | | 10.16 | | | | | | 3/18/2022 |\n",
"| | | 10.9+ | | | | | | Amended and Restated 2007 Equity Incentive Plan – Global Restricted Stock Unit Grant Notice and Global Restricted Stock Unit Agreement (2023) | | | | | | 10-K | | | | | | | | | | 10.14 | | | | | | 2/24/2023 |\n",
"| | | 10.10+ | | | | | | Amended and Restated 2012 Employee Stock Purchase Plan | | | | | | 10-Q | | | | | | | | | | 10.2 | | | | | | 8/20/2021 |\n",
"| | | 10.11+ | | | | | | Variable Compensation Plan - Fiscal Year 2023 | | | | | | 8-K | | | | | | | | | | 10.1 | | | | | | 3/9/2022 |\n",
"| | | 10.12+ | | | | | | Variable Compensation Plan - Fiscal Year 2024 | | | | | | 8-K | | | | | | | | | | 10.1 | | | | | | 3/8/2023 |\n",
"| | | 10.13 | | | | | | Form of Commercial Paper Dealer Agreement between NVIDIA Corporation, as Issuer, and the Dealer party thereto | | | | | | 8-K | | | | | | | | | | 10.1 | | | | | | 12/15/2017 |\n",
"| | | 21.1* | | | | | | | | | | | | | | | | | | | | | | | | Subsidiaries of Registrant | | | | |\n",
"| | | 23.1* | | | | | | | | | | | | | | | | | | | | | | | | Consent of PricewaterhouseCoopers LLP | | | | |\n",
"| | | 24.1* | | | | | | | | | | | | | | | | | | | | | | | | Power of Attorney (included in signature page) | | | | |\n",
"| | | 31.1* | | | | | | | | | | | | | | | | | | | | | | | | Certification of Chief Executive Officer as required by Rule 13a-14(a) of the Securities Exchange Act of 1934 | | | | |\n",
"| | | 31.2* | | | | | | | | | | | | | | | | | | | | | | | | Certification of Chief Financial Officer as required by Rule 13a-14(a) of the Securities Exchange Act of 1934 | | | | |\n",
"| | | 32.1#* | | | | | | | | | | | | | | | | | | | | | | | | Certification of Chief Executive Officer as required by Rule 13a-14(b) of the Securities Exchange Act of 1934 | | | | |\n",
"| | | 32.2#* | | | | | | | | | | | | | | | | | | | | | | | | Certification of Chief Financial Officer as required by Rule 13a-14(b) of the Securities Exchange Act of 1934 | | | | |\n",
"| | | 97.1+* | | | | | | | | | | | | | | | | | | | | | | | | Compensation Recovery Policy, as amended and restated November 30, 2023 | | | | |\n",
"| | | 101.INS* | | | | | | | | | | | | | | | | | | | | | | | | XBRL Instance Document | | | | |\n",
"| | | 101.SCH* | | | | | | | | | | | | | | | | | | | | | | | | XBRL Taxonomy Extension Schema Document | | | | |\n",
"| | | 101.CAL* | | | | | | | | | | | | | | | | | | | | | | | | XBRL Taxonomy Extension Calculation Linkbase Document | | | | |\n",
"| | | 101.DEF* | | | | | | | | | | | | | | | | | | | | | | | | XBRL Taxonomy Extension Definition Linkbase Document | | | | |\n",
"| | | 101.LAB* | | | | | | | | | | | | | | | | | | | | | | | | XBRL Taxonomy Extension Labels Linkbase Document | | | | |\n",
"| | | 101.PRE* | | | | | | | | | | | | | | | | | | | | | | | | XBRL Taxonomy Extension Presentation Linkbase Document | | | | |\n",
"| | | 104 | | | | | | | | | | | | | | | | | | | | | | | | Cover Page Interactive Data File - the cover page interactive data file does not appear in the Interactive Data File because its XBRL tags are embedded within the Inline XBRL document | | | | |]\n",
"*  Filed herewith.+  Management contract or compensatory plan or arrangement.# In accordance with Item 601(b)(32)(ii) of Regulation S-K and SEC Release Nos. 33-8238 and 34-47986, Final Rule: Management's Reports on Internal Control Over Financial Reporting and Certification of Disclosure in Exchange Act Periodic Reports, the certifications furnished in Exhibits 32.1 and 32.2 hereto are deemed to accompany this Annual Report on Form 10-K and will not be deemed “filed” for purpose of Section 18 of the Exchange Act. Such certifications will not be deemed to be incorporated by reference into any filing under the Securities Act or the Exchange Act, except to the extent that the registrant specifically incorporates it by reference.^ Certain exhibits and schedules have been omitted in accordance with Regulation S-K Item 601(a)(5). Copies of above exhibits not contained herein are available to any shareholder upon written request to:Investor Relations: NVIDIA Corporation, 2788 San Tomas Expressway, Santa Clara, CA 95051\n",
"\n"
]
}
],
"source": [
"# Convert to markdown (Approach 2: Extract text and convert tables)\n",
"markdown = \"\"\n",
"markdown += f\"# {target_top_level_section.semantic_element.text}\\n\"\n",
"for node in target_top_level_section.get_descendants():\n",
" element = node.semantic_element\n",
" if isinstance(element, (sp.TextElement, sp.SupplementaryText)):\n",
" markdown += f\"{element.text}\\n\"\n",
" elif isinstance(element, sp.TitleElement):\n",
" if element.text.startswith(\"Table of Content\"):\n",
" markdown += f\"{level_to_markdown[element.level]} {element.text}\\n\"\n",
" else: \n",
" markdown += f\"{level_to_markdown[element.level+2]} {element.text}\\n\"\n",
" elif isinstance(element, sp.TableElement):\n",
" markdown += f\"[{element.table_to_markdown()}]\\n\" # Get the markdown table\n",
" #markdown += f\"[{element.get_summary()}]\\n\" # Get the table summary only\n",
"\n",
"# Review conversion results\n",
"print(get_lines(markdown))\n",
"\n",
"# Documentation of the below might be relevant: \n",
"# sec_parser.utils.bs4_.table_check_data_cell\n",
"# sec_parser.utils.bs4_.table_to_markdown\n",
"# https://sec-parser.readthedocs.io/en/latest/autoapi/index.html\n",
"# https://sec-parser.readthedocs.io/en/latest/autoapi/sec_parser/index.html"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Note 1 - Organization and Summary of Significant Accounting Policies\n"
]
}
],
"source": [
"# Filter Accounting Policies Note \n",
"# (unlike the segment note, this is NOT parsed into a subtree)\n",
"#\n",
"# !!! Note: Need to identify all nodes between the Accounting Policies Note and the next Note\n",
"\n",
"selected_top_level_section = [\n",
" k for k in top_level_sections if (\n",
" (\"Note\" in k.semantic_element.text and \n",
" \"Accounting Policies\" in k.semantic_element.text)\n",
" )\n",
"][0]\n",
"\n",
"print(selected_top_level_section.text)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Note 2 - Business Combination\n"
]
}
],
"source": [
"# Find the next top-level section that is a Note\n",
"next_top_level_section = next(\n",
" (k for k in top_level_sections[top_level_sections.index(selected_top_level_section) + 1:] \n",
" if k.semantic_element.text.startswith(\"Note \")),\n",
" None # Default to None if no such section is found\n",
")\n",
"\n",
"if next_top_level_section:\n",
" print(next_top_level_section.text)\n",
"else:\n",
" print(\"No next top-level section found that starts with 'Note '.\")\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"29\n",
"Note 1 - Organization and Summary of Significant Accounting Policies\n",
"Recent Accounting Pronouncements Not Yet Adopted\n"
]
}
],
"source": [
"# Define the target_top_level_sections as the segment between selected_top_level_section and next_top_level_section\n",
"target_top_level_sections = top_level_sections[\n",
" top_level_sections.index(selected_top_level_section) : \n",
" top_level_sections.index(next_top_level_section)\n",
"] if next_top_level_section else top_level_sections[\n",
" top_level_sections.index(selected_top_level_section) :\n",
"]\n",
"\n",
"# Review results\n",
"print(len(target_top_level_sections))\n",
"print(target_top_level_sections[0].text)\n",
"print(target_top_level_sections[-1].text)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{0: '##', 2: '###', 3: '####', 4: '#####', 5: '######'}"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# For Accounting Policies Note :\n",
"#\n",
"# Convert to markdown (First step: Get levels)\n",
"# Note: Removed .get_descendants()\n",
"\n",
"for target_top_level_section in target_top_level_sections:\n",
" levels = sorted(\n",
" {\n",
" k.semantic_element.level \n",
" for k in target_top_level_section.parent.get_descendants()\n",
" if isinstance(k.semantic_element, sp.TitleElement)\n",
" }\n",
" )\n",
"\n",
"level_to_markdown = {level: \"#\" * (i + 2) for i, level in enumerate(levels)}\n",
"level_to_markdown\n",
"\n",
"#levels"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"# Note 1 - Organization and Summary of Significant Accounting Policies\n",
"## Our Company\n",
"Headquartered in Santa Clara, California, NVIDIA was incorporated in California in April 1993 and reincorporated in Delaware in April 1998. All references to “NVIDIA,” “we,” “us,” “our” or the “Company” mean NVIDIA Corporation and its subsidiaries.\n",
"## Fiscal Year\n",
"We operate on a 52- or 53-week year, ending on the last Sunday in January. Fiscal years 2024, 2023 and 2022 were all 52-week years.\n",
"## Principles of Consolidation\n",
"Our consolidated financial statements include the accounts of NVIDIA Corporation and our wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.\n",
"## Use of Estimates\n",
"The preparation of financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosures of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenue and expenses during the reporting period. Actual results could differ materially from our estimates. On an on-going basis, we evaluate our estimates, including those related to revenue recognition, cash equivalents and marketable securities, accounts receivable, inventories and product purchase commitments, income taxes, goodwill, stock-based compensation, litigation, investigation and settlement costs, restructuring and other charges, property, plant, and equipment, and other contingencies. These estimates are based on historical facts and various other assumptions that we believe are reasonable.In February 2023, we assessed the useful lives of our property, plant, and equipment. Based on advances in technology and usage rate, we increased the estimated useful life of most of our server, storage, and network equipment from three to four or five years, and our assembly and test equipment from five to seven years. The effect of this change for the fiscal year ended January 28, 2024 was a benefit of $33 million and $102 million for cost of revenue and operating expenses, respectively, which resulted in an increase in operating income of $135 million and net income of $114 million after tax, or $0.05 per both basic and diluted share.\n",
"## Revenue Recognition\n",
"We derive our revenue from product sales, including hardware and systems, license and development arrangements, software licensing, and cloud services. We determine revenue recognition through the following steps: (1) identification of the contract with a customer; (2) identification of the performance obligations in the contract; (3) determination of the transaction price; (4) allocation of the transaction price to the performance obligations in the contract (where revenue is allocated on a relative standalone selling price basis by maximizing the use of observable inputs to determine the standalone selling price for each performance obligation); and (5) recognition of revenue when, or as, we satisfy a performance obligation.\n",
"## Product Sales Revenue\n",
"Revenue from product sales is recognized upon transfer of control of products to customers in an amount that reflects the consideration we expect to receive in exchange for those products. Certain products are sold with support or an extended warranty for the incorporated system, hardware, and/or software. Support and extended warranty revenue are recognized ratably over the service period, or as services are performed. Revenue is recognized net of allowances for returns, customer programs and any taxes collected from customers.For products sold with a right of return, we record a reduction to revenue by establishing a sales return allowance for estimated product returns at the time revenue is recognized, based primarily on historical return rates. However, if product returns for a fiscal period are anticipated to exceed historical return rates, we may determine that additional sales return allowances are required to accurately reflect our estimated exposure for product returns.Our customer programs involve rebates, which are designed to serve as sales incentives to resellers of our products in various target markets, and marketing development funds, or MDFs, which represent monies paid to our partners that are earmarked for market segment development and are designed to support our partners’ activities while also promoting NVIDIA products. We account for customer programs as a reduction to revenue and accrue for such programs for potential rebates and MDFs based on the amount we expect to be claimed by customers.\n",
"#### Table of ContentsNVIDIA Corporation and SubsidiariesNotes to the Consolidated Financial Statements(Continued)\n",
"## License and Development Arrangements\n",
"Our license and development arrangements with customers typically require significant customization of our IP components. As a result, we recognize the revenue from the license and the revenue from the development services as a single performance obligation over the period in which the development services are performed. We measure progress to completion based on actual cost incurred to date as a percentage of the estimated total cost required to complete each project. If a loss on an arrangement becomes probable during a period, we record a provision for such loss in that period.\n",
"## Software Licensing\n",
"Our software licenses provide our customers with a right to use the software when it is made available to the customer. Customers may purchase either perpetual licenses or subscriptions to licenses, which differ mainly in the duration over which the customer benefits from the software. Software licenses are frequently sold along with the right to receive, on a when-and-if available basis, future unspecified software updates and upgrades. Revenue from software licenses is recognized up front when the software is made available to the customer. Software support revenue is recognized ratably over the service period, or as services are performed.\n",
"## Cloud Services\n",
"Cloud services, which allow customers to use hosted software and hardware infrastructure without taking possession of the software or hardware, are provided on a subscription basis or a combination of subscription plus usage. Revenue related to subscription-based cloud services is recognized ratably over the contract period. Revenue related to cloud services based on usage is recognized as usage occurs. Cloud services are typically sold on a standalone basis, but certain offerings may be sold with hardware and/or software and related support.\n",
"## Contracts with Multiple Performance Obligations\n",
"Our contracts may contain more than one of the products and services listed above, each of which is separately accounted for as a distinct performance obligation. We account for multiple agreements with a single customer as a single contract if the contractual terms and/or substance of those agreements indicate that they may be so closely related that they are, in effect, parts of a single contract.We allocate the total transaction price to each distinct performance obligation in a multiple performance obligations arrangement on a relative standalone selling price basis. The standalone selling price reflects the price we would charge for a specific product or service if it were sold separately in similar circumstances and to similar customers. When determining standalone selling price, we maximize the use of observable inputs. If a contract contains a single performance obligation, no allocation is required.\n",
"## Product Warranties\n",
"We offer a limited warranty to end-users ranging from one to three years for products to repair or replace products for manufacturing defects or hardware component failures. Cost of revenue includes the estimated cost of product warranties that are calculated at the point of revenue recognition. Under limited circumstances, we may offer an extended limited warranty to customers for certain products. We also accrue for known warranty and indemnification issues if a loss is probable and can be reasonably estimated.\n",
"## Stock-based Compensation\n",
"We use the closing trading price of our common stock on the date of grant, minus a dividend yield discount, as the fair value of awards of restricted stock units, or RSUs, and performance stock units that are based on our corporate financial performance targets, or PSUs. We use a Monte Carlo simulation on the date of grant to estimate the fair value of performance stock units that are based on market conditions, or market-based PSUs. The compensation expense for RSUs and market-based PSUs is recognized using a straight-line attribution method over the requisite employee service period while compensation expense for PSUs is recognized using an accelerated amortization model. We estimate the fair value of shares to be issued under our employee stock purchase plan, or ESPP, using the Black-Scholes model at the commencement of an offering period in March and September of each year. Stock-based compensation for our ESPP is expensed using an accelerated amortization model. Additionally, for RSU, PSU, and market-based PSU awards, we estimate forfeitures semi-annually and revise the estimates of forfeiture in subsequent periods if actual forfeitures differ from those estimates. Forfeitures are estimated based on historical experience.\n",
"## Litigation, Investigation and Settlement Costs\n",
"We currently, are, and will likely continue to be subject to claims, litigation, and other actions, including potential regulatory proceedings, involving patent and other intellectual property matters, taxes, labor and employment, competition and antitrust, commercial disputes, goods and services offered by us and by third parties, and other matters. There are many uncertainties associated with any litigation or investigation, and we cannot be certain that these actions\n",
"#### Table of ContentsNVIDIA Corporation and SubsidiariesNotes to the Consolidated Financial Statements(Continued)\n",
"or other third-party claims against us will be resolved without litigation, fines and/or substantial settlement payments or judgments. If information becomes available that causes us to determine that a loss in any of our pending litigation, investigations or settlements is probable, and we can reasonably estimate the loss associated with such events, we will record the loss in accordance with U.S. GAAP. However, the actual liability in any such litigation or investigation may be materially different from our estimates, which could require us to record additional costs.\n",
"## Foreign Currency Remeasurement\n",
"We use the U.S. dollar as our functional currency for our subsidiaries. Foreign currency monetary assets and liabilities are remeasured into United States dollars at end-of-period exchange rates. Non-monetary assets and liabilities such as property and equipment and equity are remeasured at historical exchange rates. Revenue and expenses are remeasured at exchange rates in effect during each period, except for those expenses related to non-monetary balance sheet amounts, which are remeasured at historical exchange rates. Gains or losses from foreign currency remeasurement are included in earnings in our Consolidated Statements of Income and to date have not been significant.\n",
"## Income Taxes\n",
"We recognize federal, state and foreign current tax liabilities or assets based on our estimate of taxes payable or refundable in the current fiscal year by tax jurisdiction. We recognize federal, state and foreign deferred tax assets or liabilities, as appropriate, for our estimate of future tax effects attributable to temporary differences and carryforwards; and we record a valuation allowance to reduce any deferred tax assets by the amount of any tax benefits that, based on available evidence and judgment, are not expected to be realized.Our calculation of deferred tax assets and liabilities is based on certain estimates and judgments and involves dealing with uncertainties in the application of complex tax laws. Our estimates of deferred tax assets and liabilities may change based, in part, on added certainty or finality to an anticipated outcome, changes in accounting standards or tax laws in the U.S., or foreign jurisdictions where we operate, or changes in other facts or circumstances. In addition, we recognize liabilities for potential U.S. and foreign income tax contingencies based on our estimate of whether, and the extent to which, additional taxes may be due. If we determine that payment of these amounts is unnecessary or if the recorded tax liability is less than our current assessment, we may be required to recognize an income tax benefit or additional income tax expense in our financial statements accordingly.As of January 28, 2024, we had a valuation allowance of $1.6 billion related to capital loss carryforwards, and certain state and other deferred tax assets that management determined are not likely to be realized due, in part, to jurisdictional projections of future taxable income, including capital gains. To the extent realization of the deferred tax assets becomes more-likely-than-not, we would recognize such deferred tax assets as income tax benefits during the period.We recognize the benefit from a tax position only if it is more-likely-than-not that the position would be sustained upon audit based solely on the technical merits of the tax position. Our policy is to include interest and penalties related to unrecognized tax benefits as a component of income tax expense.\n",
"## Net Income Per Share\n",
"Basic net income per share is computed using the weighted average number of common shares outstanding during the period. Diluted net income per share is computed using the weighted average number of common and potentially dilutive shares outstanding during the period, using the treasury stock method. Any anti-dilutive effect of equity awards outstanding is not included in the computation of diluted net income per share.\n",
"## Cash and Cash Equivalents and Marketable Securities\n",
"We consider all highly liquid investments that are readily convertible into cash and have an original maturity of three months or less at the time of purchase to be cash equivalents. Marketable securities consist of highly liquid debt investments with maturities of greater than three months when purchased. We currently classify our investments as current based on the nature of the investments and their availability for use in current operations.We classify our cash equivalents and marketable securities related to debt securities at the date of acquisition as available-for-sale. These available-for-sale debt securities are reported at fair value with the related unrealized gains and losses included in accumulated other comprehensive income or loss, a component of shareholders’ equity, net of tax. The fair value of interest-bearing debt securities includes accrued interest. Realized gains and losses on the sale of marketable securities are determined using the specific-identification method and recorded in the other income (expense), net, section of our Consolidated Statements of Income.Available-for-sale debt investments are subject to a periodic impairment review. If the estimated fair value of available-for-sale debt securities is less than its amortized cost basis, we determine if the difference, if any, is caused by expected credit losses and write-down the amortized cost basis of the securities if it is more likely than not we will be required or\n",
"#### Table of ContentsNVIDIA Corporation and SubsidiariesNotes to the Consolidated Financial Statements(Continued)\n",
"we intend to sell the securities before recovery of its amortized cost basis. Allowances for credit losses and write-downs are recognized in the other income (expense), net section of our Consolidated Statements of Income.\n",
"## Fair Value of Financial Instruments\n",
"The carrying value of cash equivalents, accounts receivable, accounts payable and accrued liabilities approximate their fair values due to their relatively short maturities as of January 28, 2024 and January 29, 2023. Marketable securities are comprised of available-for-sale securities that are reported at fair value with the related unrealized gains or losses included in accumulated other comprehensive income or loss, a component of shareholders’ equity, net of tax. Fair value of the marketable securities is determined based on quoted market prices. Derivative instruments are recognized as either assets or liabilities and are measured at fair value. The accounting for changes in the fair value of a derivative depends on the intended use of the derivative and the resulting designation. For derivative instruments designated as fair value hedges, the gains or losses are recognized in earnings in the periods of change together with the offsetting losses or gains on the hedged items attributed to the risk being hedged. For derivative instruments designated as cash-flow hedges, the effective portion of the gains or losses on the derivatives is initially reported as a component of other comprehensive income or loss and is subsequently recognized in earnings when the hedged exposure is recognized in earnings. For derivative instruments not designated for hedge accounting, changes in fair value are recognized in earnings.\n",
"## Concentration of Credit Risk\n",
"Financial instruments that potentially subject us to concentrations of credit risk consist primarily of cash equivalents, marketable securities, and accounts receivable. Our investment policy requires the purchase of highly-rated fixed income securities, the diversification of investment type and credit exposures, and includes certain limits on our portfolio duration. We perform ongoing credit evaluations of our customers’ financial condition and maintain an allowance for potential credit losses. This allowance consists of an amount identified for specific customers and an amount based on overall estimated exposure. Our overall estimated exposure excludes amounts covered by credit insurance and letters of credit.\n",
"## Inventories\n",
"Inventory cost is computed on an adjusted standard basis, which approximates actual cost on an average or first-in, first-out basis. Inventory costs consist primarily of the cost of semiconductors, including wafer fabrication, assembly, testing and packaging, manufacturing support costs, including labor and overhead associated with such purchases, final test yield fallout, and shipping costs, as well as the cost of purchased memory products and other component parts. We charge cost of sales for inventory provisions to write-down our inventory to the lower of cost or net realizable value or for obsolete or excess inventory, and for excess product purchase commitments. Most of our inventory provisions relate to excess quantities of products, based on our inventory levels and future product purchase commitments compared to assumptions about future demand and market conditions. Once inventory has been written-off or written-down, it creates a new cost basis for the inventory that is not subsequently written-up. We record a liability for noncancelable purchase commitments with suppliers for quantities in excess of our future demand forecasts consistent with our valuation of obsolete or excess inventory.\n",
"## Property and Equipment\n",
"Property and equipment are stated at cost less accumulated depreciation. Depreciation of property and equipment is computed using the straight-line method based on the estimated useful lives of the assets of three to seven years. Once an asset is identified for retirement or disposition, the related cost and accumulated depreciation or amortization are removed, and a gain or loss is recorded. The estimated useful lives of our buildings are up to thirty years. Depreciation expense includes the amortization of assets recorded under finance leases. Leasehold improvements and assets recorded under finance leases are amortized over the shorter of the expected lease term or the estimated useful life of the asset.\n",
"## Leases\n",
"We determine if an arrangement is or contains a lease at inception. Operating leases with lease terms of more than 12 months are included in operating lease assets, accrued and other current liabilities, and long-term operating lease liabilities on our consolidated balance sheet. Operating lease assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments over the lease term.Operating lease assets and liabilities are recognized based on the present value of the remaining lease payments discounted using our incremental borrowing rate. Operating lease assets also include initial direct costs incurred and prepaid lease payments, minus any lease incentives. Our lease terms include options to extend or terminate the lease when it is reasonably certain that we will exercise that option. Lease expense is recognized on a straight-line basis over the lease term.We combine the lease and non-lease components in determining the operating lease assets and liabilities.\n",
"#### Table of ContentsNVIDIA Corporation and SubsidiariesNotes to the Consolidated Financial Statements(Continued)\n",
"## Goodwill\n",
"Goodwill is subject to our annual impairment test during the fourth quarter of our fiscal year, or earlier if indicators of potential impairment exist. In completing our impairment test, we perform either a qualitative or a quantitative analysis on a reporting unit basis. Qualitative factors include industry and market considerations, overall financial performance, and other relevant events and factors affecting the reporting units.\n",
"The quantitative impairment test considers both the income approach and the market approach to estimate a reporting unit’s fair value. The income and market valuation approaches consider factors that include, but are not limited to, prospective financial information, growth rates, residual values, discount rates and comparable multiples from publicly traded companies in our industry and require us to make certain assumptions and estimates regarding industry economic factors and the future profitability of our business.\n",
"## Intangible Assets and Other Long-Lived Assets\n",
"Intangible assets primarily represent acquired intangible assets including developed technology and customer relationships, as well as rights acquired under technology licenses, patents, and acquired IP. We currently amortize our intangible assets with finite lives over periods ranging from one to twenty years using a method that reflects the pattern in which the economic benefits of the intangible asset are consumed or otherwise used up or, if that pattern cannot be reliably determined, using a straight-line amortization method. Long-lived assets, such as property and equipment and intangible assets subject to amortization, are reviewed for impairment whenever events or changes in circumstances indicate that the carrying amount of an asset or asset group may not be recoverable. The recoverability of assets or asset groups to be held and used is measured by a comparison of the carrying amount of an asset or asset group to estimated undiscounted future cash flows expected to be generated by the asset or asset group. If the carrying amount of an asset or asset group exceeds its estimated future cash flows, an impairment charge is recognized for the amount by which the carrying amount of the asset or asset group exceeds the estimated fair value of the asset or asset group. Fair value is determined based on the estimated discounted future cash flows expected to be generated by the asset or asset group. Assets and liabilities to be disposed of would be separately presented in the Consolidated Balance Sheet and the assets would be reported at the lower of the carrying amount or fair value less costs to sell, and would no longer be depreciated.\n",
"## Business Combination\n",
"We allocate the fair value of the purchase price of an acquisition to the tangible assets acquired, liabilities assumed, and intangible assets acquired, based on their estimated fair values. The excess of the fair value of the purchase price over the fair values of these net tangible and intangible assets acquired is recorded as goodwill. Management’s estimates of fair value are based upon assumptions believed to be reasonable, but our estimates and assumptions are inherently uncertain and subject to refinement. The estimates and assumptions used in valuing intangible assets include, but are not limited to, the amount and timing of projected future cash flows, discount rate used to determine the present value of these cash flows and asset lives. These estimates are inherently uncertain and, therefore, actual results may differ from the estimates made. As a result, during the measurement period of up to one year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the measurement period's conclusion or final determination of the fair value of the purchase price of an acquisition, whichever comes first, any subsequent adjustments are recorded to our Consolidated Statements of Income.Acquisition-related expenses are recognized separately from the business combination and expensed as incurred.\n",
"## Investments in Non-Affiliated Entities\n",
"Our investment in non-affiliates consists of marketable equity securities, which are publicly traded, and non-marketable equity securities, which are investments in privately held companies. Marketable equity securities have readily determinable fair values with changes in fair value recorded in other income (expense), net. Non-marketable equity securities include investments that do not have a readily determinable fair value. The investments that do not have readily determinable fair value are measured at cost minus impairment, if any, and are adjusted for changes resulting from observable price changes in orderly transactions for an identical or similar investment in the same issuer, or the measurement alternative. Fair value is based upon observable inputs in an inactive market and the valuation requires our judgment due to the absence of market prices and inherent lack of liquidity. All gains and losses on these investments, realized and unrealized, are recognized in other income (expense), net on our Consolidated Statements of Income. We assess whether an impairment loss has occurred on our investments in non-marketable equity securities, accounted for under the measurement alternative based on quantitative and qualitative factors. If any impairment is identified for non-marketable equity securities, we write down the investment to its fair value and record the corresponding charge through other income (expense), net on our Consolidated Statements of Income.\n",
"#### Table of ContentsNVIDIA Corporation and SubsidiariesNotes to the Consolidated Financial Statements(Continued)\n",
"## Recently Issued Accounting Pronouncements\n",
"## Recent Accounting Pronouncements Not Yet Adopted\n",
"In November 2023, the Financial Accounting Standards Board, or FASB, issued a new accounting standard to provide for additional disclosures about significant expenses in operating segments. The standard is effective for our annual reporting for fiscal year 2025 and for interim period reporting starting in fiscal year 2026 retrospectively. We are currently evaluating the impact of this standard on our Consolidated Financial Statements.In December 2023, the FASB issued a new accounting standard which provides for new and changes to income tax disclosures including disaggregation of the rate reconciliation and income taxes paid disclosures. The amendments in the standard are effective for annual periods beginning after December 15, 2024. Early adoption is permitted and should be applied prospectively, with retrospective application permitted. We expect to adopt this standard in our annual period beginning fiscal year 2026. We are currently evaluating the impact of this standard on our Consolidated Financial Statements.\n",
"\n"
]
}
],
"source": [
"# For Accounting Policies Note :\n",
"#\n",
"# Convert to markdown (Approach 1: Extract text and only summarize tables)\n",
"\n",
"markdown = \"\"\n",
"\n",
"for target_top_level_section in target_top_level_sections:\n",
" if target_top_level_section.semantic_element.text.startswith(\"Note \"):\n",
" markdown += f\"# {target_top_level_section.semantic_element.text}\\n\"\n",
" else:\n",
" markdown += f\"## {target_top_level_section.semantic_element.text}\\n\"\n",
" for node in target_top_level_section.get_descendants():\n",
" element = node.semantic_element\n",
" if isinstance(element, (sp.TextElement, sp.SupplementaryText)):\n",
" markdown += f\"{element.text}\\n\"\n",
" elif isinstance(element, sp.TitleElement):\n",
" if element.text.startswith(\"Table of Content\"):\n",
" markdown += f\"{level_to_markdown[element.level]} {element.text}\\n\"\n",
" else: \n",
" markdown += f\"{level_to_markdown[element.level+2]} {element.text}\\n\"\n",
" elif isinstance(element, sp.TableElement): \n",
" #markdown += f\"[{element.table_to_markdown()}]\\n\" # Get the markdown table\n",
" markdown += f\"[{element.get_summary()}]\\n\" # Get the table summary only\n",
"\n",
"# Review conversion results\n",
"print(get_lines(markdown))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Advanced Usage\n",
"\n",
"Processing is organized in steps. You can modify, add, remove steps as needed. Each step is a function that takes a list of elements as input and returns a list of elements as output. The output of one step is the input of the next step."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Step 1: IndividualSemanticElementExtractor\n",
"Step 2: ImageClassifier\n",
"Step 3: EmptyElementClassifier\n",
"Step 4: TableClassifier\n",
"Step 5: TableOfContentsClassifier\n",
"Step 6: TopSectionManagerFor10Q\n",
"Step 7: IntroductorySectionElementClassifier\n",
"Step 8: TextClassifier\n",
"Step 9: HighlightedTextClassifier\n",
"Step 10: SupplementaryTextClassifier\n",
"Step 11: PageHeaderClassifier\n",
"Step 12: PageNumberClassifier\n",
"Step 13: TitleClassifier\n",
"Step 14: TextElementMerger\n"
]
}
],
"source": [
"steps = sp.Edgar10QParser().get_default_steps()\n",
"\n",
"for i, step in enumerate(steps, 1):\n",
" print(f\"Step {i}: {step.__class__.__name__}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let’s illustrate an example where we replace the text element classifier with our custom classifier. This custom classifier is designed to identify, which elements match our custom element description:"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Step 1: IndividualSemanticElementExtractor\n",
"Step 2: ImageClassifier\n",
"Step 3: EmptyElementClassifier\n",
"Step 4: TableClassifier\n",
"Step 5: TableOfContentsClassifier\n",
"Step 6: TopSectionManagerFor10Q\n",
"Step 7: IntroductorySectionElementClassifier\n",
"Step 8: MyClassifier\n",
"Step 9: HighlightedTextClassifier\n",
"Step 10: SupplementaryTextClassifier\n",
"Step 11: PageHeaderClassifier\n",
"Step 12: PageNumberClassifier\n",
"Step 13: TitleClassifier\n",
"Step 14: TextElementMerger\n"
]
}
],
"source": [
"from sec_parser.processing_steps import TextClassifier\n",
"\n",
"\n",
"# Create a custom element class\n",
"class MyElement(sp.TextElement):\n",
" pass\n",
"\n",
"\n",
"# Create a custom parsing step\n",
"class MyClassifier(TextClassifier):\n",
" def _process_element(self, element, context):\n",
" if element.text != \"\":\n",
" return MyElement.create_from_element(element, log_origin=\"MyClassifier\")\n",
"\n",
" # Let the parent class handle the other cases\n",
" return super()._process_element(element, context)\n",
"\n",
"\n",
"# Replace the default text parsing step with our custom one\n",
"steps = [MyClassifier() if isinstance(step, TextClassifier) else step for step in steps]\n",
"for i, step in enumerate(steps, 1):\n",
" print(f\"Step {i}: {step.__class__.__name__}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As demonstrated above, our custom classifier is now integrated into the pipeline.\n",
"\n",
"There’s an additional caveat to consider. Without specifying an “allowlist” of types, TableElement will be classified as TextElement, as it contains text. To prevent this, we will process only `NotYetClassifiedElement` types and bypass processing for all other types."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1;34mTitleElement\u001b[0m: Note 17 - Segment Information\n",
"├── \u001b[1;34mTextElement\u001b[0m: Our Chief Executive Officer, wh...s and the “All Other” category.\n",
"├── \u001b[1;34mTableElement\u001b[0m: Table with ~9 rows, ~24 numbers, and 403 characters.\n",
"├── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
"│ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~9 rows, ~22 numbers, and 448 characters.\n",
"│ ├── \u001b[1;34mMyElement\u001b[0m: Revenue by geographic areas is ...eographic areas was as follows:\n",
"│ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~6 rows, ~18 numbers, and 244 characters.\n",
"│ ├── \u001b[1;34mTextElement\u001b[0m: Revenue from sales to customers...for fiscal years 2023 and 2022.\n",
"│ ├── \u001b[1;34mMyElement\u001b[0m: The following table summarizes ...e specialized markets we serve:\n",
"│ └── \u001b[1;34mTableElement\u001b[0m: Table with ~7 rows, ~21 numbers, and 260 characters.\n",
"├── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
"│ ├── \u001b[1;34mMyElement\u001b[0m: The following table presents su...oodwill, and intangible assets.\n",
"│ └── \u001b[1;34mTableElement\u001b[0m: Table with ~6 rows, ~12 numbers, and 169 characters.\n",
"├── \u001b[1;34mTitleElement\u001b[0m: Schedule II – Valuation and Qualifying Accounts\n",
"│ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~13 rows, ~47 numbers, and 619 characters.\n",
"│ └── \u001b[1;34mTextElement\u001b[0m: (1)Additions represent either e...n. (4)Represents sales returns.\n",
"└── \u001b[1;34mTitleElement\u001b[0m: Exhibit Index\n",
" ├── \u001b[1;34mTableElement\u001b[0m: Table with ~28 rows, ~127 numbers, and 2587 characters.\n",
" ├── \u001b[1;34mTableElement\u001b[0m: Table with ~22 rows, ~54 numbers, and 1993 characters.\n",
" └── \u001b[1;34mTextElement\u001b[0m: *  Filed herewith.+  Management...pressway, Santa Clara, CA 95051\n",
"...\n"
]
}
],
"source": [
"def get_steps():\n",
" return [\n",
" (\n",
" MyClassifier(types_to_process={sp.NotYetClassifiedElement})\n",
" if isinstance(step, TextClassifier)\n",
" else step\n",
" )\n",
" for step in sp.Edgar10QParser().get_default_steps()\n",
" ]\n",
"\n",
"with warnings.catch_warnings():\n",
" warnings.filterwarnings(\"ignore\", message=\"Invalid section type for\")\n",
" elements = sp.Edgar10QParser(get_steps).parse(html)\n",
"tree = sp.TreeBuilder().build(elements)\n",
"\n",
"#section = [n for n in tree.nodes if n.text.startswith(\"Risk management and strategy\")][0]\n",
"\n",
"#section = [n for n in tree.nodes if n.text.startswith(\"Note 16 - Segment Information\")][0]\n",
"\n",
"section = [n for n in tree.nodes if n.text.__contains__(\"Segment Information\")][0]\n",
"print(\"\\n\".join(sp.render(section).split(\"\\n\")[:]), \"...\", sep=\"\\n\")\n"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'Reportable Segments'\n",
"'Revenue by Reportable Segments'\n",
"'Operating Income by Reportable Segments'\n",
"'Note 17 - Segment Information'\n"
]
}
],
"source": [
"for n in tree.nodes:\n",
" if \"Segment\" in n.text:\n",
" print(repr(n.text))"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1;34mTitleElement\u001b[0m: Reportable Segments\n",
"...\n",
"\u001b[1;34mTitleElement\u001b[0m: Revenue by Reportable Segments\n",
"└── \u001b[1;34mTableElement\u001b[0m: Table with ~3 rows, ~14 numbers, and 178 characters.\n",
"...\n",
"\u001b[1;34mTitleElement\u001b[0m: Operating Income by Reportable Segments\n",
"├── \u001b[1;34mTableElement\u001b[0m: Table with ~4 rows, ~18 numbers, and 206 characters.\n",
"└── \u001b[1;34mTextElement\u001b[0m: Compute & Networking revenue – ...on expense in fiscal year 2024.\n",
"...\n",
"\u001b[1;34mTitleElement\u001b[0m: Note 17 - Segment Information\n",
"├── \u001b[1;34mTextElement\u001b[0m: Our Chief Executive Officer, wh...s and the “All Other” category.\n",
"├── \u001b[1;34mTableElement\u001b[0m: Table with ~9 rows, ~24 numbers, and 403 characters.\n",
"├── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
"│ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~9 rows, ~22 numbers, and 448 characters.\n",
"│ ├── \u001b[1;34mMyElement\u001b[0m: Revenue by geographic areas is ...eographic areas was as follows:\n",
"│ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~6 rows, ~18 numbers, and 244 characters.\n",
"│ ├── \u001b[1;34mTextElement\u001b[0m: Revenue from sales to customers...for fiscal years 2023 and 2022.\n",
"│ ├── \u001b[1;34mMyElement\u001b[0m: The following table summarizes ...e specialized markets we serve:\n",
"│ └── \u001b[1;34mTableElement\u001b[0m: Table with ~7 rows, ~21 numbers, and 260 characters.\n",
"├── \u001b[1;34mTitleElement\u001b[0m: Table of ContentsNVIDIA Corpora...Financial Statements(Continued)\n",
"│ ├── \u001b[1;34mMyElement\u001b[0m: The following table presents su...oodwill, and intangible assets.\n",
"│ └── \u001b[1;34mTableElement\u001b[0m: Table with ~6 rows, ~12 numbers, and 169 characters.\n",
"├── \u001b[1;34mTitleElement\u001b[0m: Schedule II – Valuation and Qualifying Accounts\n",
"│ ├── \u001b[1;34mTableElement\u001b[0m: Table with ~13 rows, ~47 numbers, and 619 characters.\n",
"│ └── \u001b[1;34mTextElement\u001b[0m: (1)Additions represent either e...n. (4)Represents sales returns.\n",
"└── \u001b[1;34mTitleElement\u001b[0m: Exhibit Index\n",
" ├── \u001b[1;34mTableElement\u001b[0m: Table with ~28 rows, ~127 numbers, and 2587 characters.\n",
" ├── \u001b[1;34mTableElement\u001b[0m: Table with ~22 rows, ~54 numbers, and 1993 characters.\n",
" └── \u001b[1;34mTextElement\u001b[0m: *  Filed herewith.+  Management...pressway, Santa Clara, CA 95051\n",
"...\n"
]
}
],
"source": [
"# To capture all (Method 1) elements that contain \"Segment\" in their text:\n",
"\n",
"section = [n for n in tree.nodes if \"Segment\" in n.text]\n",
"for i in range(len(section)):\n",
" #print(\"\\n\".join(sp.render(section[i]).split(\"\\n\")[0:9999]), \"...\", sep=\"\\n\") \n",
" print(\"\\n\".join(sp.render(section[i]).split(\"\\n\")[:]), \"...\", sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For more examples and advanced usage, you can continue learning how to use sec-parser by referring to the Developer Guide and Documentation. https://sec-parser.readthedocs.io/en/latest/notebooks/developer_guide.html"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Help on package sec_parser:\n",
"\n",
"NAME\n",
" sec_parser\n",
"\n",
"PACKAGE CONTENTS\n",
" exceptions\n",
" processing_engine (package)\n",
" processing_steps (package)\n",
" semantic_elements (package)\n",
" semantic_tree (package)\n",
" utils (package)\n",
"\n",
"CLASSES\n",
" abc.ABC(builtins.object)\n",
" sec_parser.processing_steps.abstract_classes.abstract_processing_step.AbstractProcessingStep\n",
" sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement\n",
" sec_parser.semantic_elements.composite_semantic_element.CompositeSemanticElement\n",
" sec_parser.semantic_elements.semantic_elements.ImageElement\n",
" sec_parser.semantic_elements.semantic_elements.IrrelevantElement\n",
" sec_parser.semantic_elements.semantic_elements.EmptyElement\n",
" sec_parser.semantic_elements.semantic_elements.PageHeaderElement\n",
" sec_parser.semantic_elements.semantic_elements.PageNumberElement\n",
" sec_parser.semantic_elements.semantic_elements.NotYetClassifiedElement\n",
" sec_parser.semantic_elements.semantic_elements.SupplementaryText(sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin, sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement)\n",
" sec_parser.semantic_elements.semantic_elements.TextElement(sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin, sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement)\n",
" sec_parser.semantic_elements.table_element.table_element.TableElement\n",
" sec_parser.semantic_tree.nesting_rules.AbstractNestingRule\n",
" builtins.Exception(builtins.BaseException)\n",
" sec_parser.exceptions.SecParserError\n",
" sec_parser.exceptions.SecParserRuntimeError(sec_parser.exceptions.SecParserError, builtins.RuntimeError)\n",
" sec_parser.exceptions.SecParserValueError(sec_parser.exceptions.SecParserError, builtins.ValueError)\n",
" builtins.object\n",
" sec_parser.processing_engine.html_tag.HtmlTag\n",
" sec_parser.processing_engine.types.ParsingOptions\n",
" sec_parser.semantic_tree.semantic_tree.SemanticTree\n",
" sec_parser.semantic_tree.tree_builder.TreeBuilder\n",
" sec_parser.semantic_tree.tree_node.TreeNode\n",
" sec_parser.processing_engine.core.AbstractSemanticElementParser(abc.ABC)\n",
" sec_parser.processing_engine.core.Edgar10QParser\n",
" sec_parser.semantic_elements.abstract_semantic_element.AbstractLevelElement(sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement)\n",
" sec_parser.semantic_elements.title_element.TitleElement(sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin, sec_parser.semantic_elements.abstract_semantic_element.AbstractLevelElement)\n",
" sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin(sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement)\n",
" sec_parser.semantic_elements.semantic_elements.SupplementaryText(sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin, sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement)\n",
" sec_parser.semantic_elements.semantic_elements.TextElement(sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin, sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement)\n",
" sec_parser.semantic_elements.title_element.TitleElement(sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin, sec_parser.semantic_elements.abstract_semantic_element.AbstractLevelElement)\n",
" sec_parser.semantic_elements.top_section_title.TopSectionTitle(sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin, sec_parser.semantic_elements.top_section_start_marker.TopSectionStartMarker)\n",
" sec_parser.semantic_elements.top_section_start_marker.TopSectionStartMarker(sec_parser.semantic_elements.abstract_semantic_element.AbstractLevelElement)\n",
" sec_parser.semantic_elements.top_section_title.TopSectionTitle(sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin, sec_parser.semantic_elements.top_section_start_marker.TopSectionStartMarker)\n",
" \n",
" class AbstractNestingRule(abc.ABC)\n",
" | AbstractNestingRule(*, exclude_parents: 'set[type[AbstractSemanticElement]] | None' = None, exclude_children: 'set[type[AbstractSemanticElement]] | None' = None) -> 'None'\n",
" | \n",
" | AbstractNestingRule is a base class for defining rules for nesting\n",
" | semantic elements. Each rule should ideally mention at most one or\n",
" | two types of semantic elements to reduce coupling and complexity.\n",
" | \n",
" | In case of conflicts between rules, they should be resolved through\n",
" | parameters like exclude_parents and exclude_children.\n",
" | \n",
" | Method resolution order:\n",
" | AbstractNestingRule\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | __init__(self, *, exclude_parents: 'set[type[AbstractSemanticElement]] | None' = None, exclude_children: 'set[type[AbstractSemanticElement]] | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | should_be_nested_under(self, parent: 'AbstractSemanticElement', child: 'AbstractSemanticElement') -> 'bool'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors defined here:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset({'_should_be_nested_under'})\n",
" \n",
" class AbstractProcessingStep(abc.ABC)\n",
" | AbstractProcessingStep() -> 'None'\n",
" | \n",
" | AbstractProcessingStep class for transforming a list of elements.\n",
" | Chaining multiple steps together allows for complex transformations\n",
" | while keeping the code modular.\n",
" | \n",
" | Each instance of a step is designed to be used for a single\n",
" | transformation operation. This ensures that any internal state\n",
" | maintained during a transformation is isolated to the processing\n",
" | of a single document.\n",
" | \n",
" | Method resolution order:\n",
" | AbstractProcessingStep\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | __init__(self) -> 'None'\n",
" | Initialize the step. Sets `_transformed` to False to ensure\n",
" | that each instance is used for exactly one transformation operation.\n",
" | \n",
" | process(self, elements: 'list[AbstractSemanticElement]') -> 'list[AbstractSemanticElement]'\n",
" | Transform the list of semantic elements.\n",
" | \n",
" | Note: The `elements` argument could potentially be mutated for\n",
" | performance reasons.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors defined here:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset({'_process'})\n",
" \n",
" class AbstractSemanticElement(abc.ABC)\n",
" | AbstractSemanticElement(html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | \n",
" | In the domain of HTML parsing, especially in the context of SEC EDGAR documents,\n",
" | a semantic element refers to a meaningful unit within the document that serves a\n",
" | specific purpose. For example, a paragraph or a table might be considered a\n",
" | semantic element. Unlike syntactic elements, which merely exist to structure the\n",
" | HTML, semantic elements carry information that is vital to the understanding of the\n",
" | document's content.\n",
" | \n",
" | This class serves as a foundational representation of such semantic elements,\n",
" | containing an HtmlTag object that stores the raw HTML tag information. Subclasses\n",
" | will implement additional behaviors based on the type of the semantic element.\n",
" | \n",
" | Method resolution order:\n",
" | AbstractSemanticElement\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | __init__(self, html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self) -> 'str'\n",
" | Return repr(self).\n",
" | \n",
" | contains_words(self) -> 'bool'\n",
" | Return True if the semantic element contains text.\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False, enable_compatibility: 'bool' = False) -> 'str'\n",
" | get_source_code is a passthrough to the HtmlTag method.\n",
" | \n",
" | get_summary(self) -> 'str'\n",
" | Return a human-readable summary of the semantic element.\n",
" | \n",
" | This method aims to provide a simplified, human-friendly representation of\n",
" | the underlying HtmlTag. In this base implementation, it is a passthrough\n",
" | to the HtmlTag's get_text() method.\n",
" | \n",
" | Note: Subclasses may override this method to provide a more specific summary\n",
" | based on the type of element.\n",
" | \n",
" | log_init(self, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Has to be called at the very end of the __init__ method.\n",
" | \n",
" | to_dict(self, *, include_previews: 'bool' = False, include_contents: 'bool' = False) -> 'dict[str, Any]'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Class methods defined here:\n",
" | \n",
" | create_from_element(source: 'AbstractSemanticElement', log_origin: 'LogItemOrigin') -> 'AbstractSemanticElement' from abc.ABCMeta\n",
" | Convert the semantic element into another semantic element type.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties defined here:\n",
" | \n",
" | html_tag\n",
" | \n",
" | text\n",
" | Property text is a passthrough to the HtmlTag text property.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors defined here:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset()\n",
" \n",
" class CompositeSemanticElement(sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement)\n",
" | CompositeSemanticElement(html_tag: 'HtmlTag', inner_elements: 'tuple[AbstractSemanticElement, ...] | None', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | \n",
" | CompositeSemanticElement acts as a container for other semantic elements,\n",
" | especially for cases where a single HTML root tag wraps multiple elements.\n",
" | This ensures structural integrity and enables various features like\n",
" | semantic segmentation visualization, and debugging by comparison with the\n",
" | original document.\n",
" | \n",
" | Why is this useful:\n",
" | ===================\n",
" | 1. Some semantic elements, like XBRL tags (<ix>), may wrap multiple semantic\n",
" | elements. The container ensures that these relationships are not broken\n",
" | during parsing.\n",
" | 2. Enables the parser to fully reconstruct the original HTML document, which\n",
" | opens up possibilities for features like semantic segmentation visualization\n",
" | (e.g. recreate the original document but put semi-transparent colored boxes\n",
" | on top, based on semantic meaning), serialization of parsed documents into\n",
" | an augmented HTML, and debugging by comparing to the original document.\n",
" | \n",
" | Method resolution order:\n",
" | CompositeSemanticElement\n",
" | sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | __init__(self, html_tag: 'HtmlTag', inner_elements: 'tuple[AbstractSemanticElement, ...] | None', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | to_dict(self, *, include_previews: 'bool' = False, include_contents: 'bool' = False) -> 'dict[str, Any]'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Class methods defined here:\n",
" | \n",
" | create_from_element(source: 'AbstractSemanticElement', log_origin: 'LogItemOrigin', *, inner_elements: 'list[AbstractSemanticElement] | None' = None) -> 'CompositeSemanticElement' from abc.ABCMeta\n",
" | Convert the semantic element into another semantic element type.\n",
" | \n",
" | unwrap_elements(elements: 'Iterable[AbstractSemanticElement]', *, include_containers: 'bool | None' = None) -> 'list[AbstractSemanticElement]' from abc.ABCMeta\n",
" | Recursively flatten a list of AbstractSemanticElement objects.\n",
" | For each CompositeSemanticElement encountered, its inner_elements\n",
" | are also recursively flattened. The 'include_containers' parameter controls\n",
" | whether the CompositeSemanticElement itself is included in the flattened list.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors defined here:\n",
" | \n",
" | inner_elements\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset()\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __repr__(self) -> 'str'\n",
" | Return repr(self).\n",
" | \n",
" | contains_words(self) -> 'bool'\n",
" | Return True if the semantic element contains text.\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False, enable_compatibility: 'bool' = False) -> 'str'\n",
" | get_source_code is a passthrough to the HtmlTag method.\n",
" | \n",
" | get_summary(self) -> 'str'\n",
" | Return a human-readable summary of the semantic element.\n",
" | \n",
" | This method aims to provide a simplified, human-friendly representation of\n",
" | the underlying HtmlTag. In this base implementation, it is a passthrough\n",
" | to the HtmlTag's get_text() method.\n",
" | \n",
" | Note: Subclasses may override this method to provide a more specific summary\n",
" | based on the type of element.\n",
" | \n",
" | log_init(self, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Has to be called at the very end of the __init__ method.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | html_tag\n",
" | \n",
" | text\n",
" | Property text is a passthrough to the HtmlTag text property.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class Edgar10QParser(AbstractSemanticElementParser)\n",
" | Edgar10QParser(get_steps: 'Callable[[], list[AbstractProcessingStep]] | None' = None, *, parsing_options: 'ParsingOptions | None' = None, html_tag_parser: 'AbstractHtmlTagParser | None' = None) -> 'None'\n",
" | \n",
" | The Edgar10QParser class is responsible for parsing SEC EDGAR 10-Q\n",
" | quarterly reports. It transforms the HTML documents into a list\n",
" | of elements. Each element in this list represents a part of\n",
" | the visual structure of the original document.\n",
" | \n",
" | Method resolution order:\n",
" | Edgar10QParser\n",
" | AbstractSemanticElementParser\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | get_default_single_element_checks(self) -> 'list[AbstractSingleElementCheck]'\n",
" | \n",
" | get_default_steps(self, get_checks: 'Callable[[], list[AbstractSingleElementCheck]] | None' = None) -> 'list[AbstractProcessingStep]'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset()\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from AbstractSemanticElementParser:\n",
" | \n",
" | __init__(self, get_steps: 'Callable[[], list[AbstractProcessingStep]] | None' = None, *, parsing_options: 'ParsingOptions | None' = None, html_tag_parser: 'AbstractHtmlTagParser | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | parse(self, html: 'str | bytes', *, unwrap_elements: 'bool | None' = None, include_containers: 'bool | None' = None, include_irrelevant_elements: 'bool | None' = None) -> 'list[AbstractSemanticElement]'\n",
" | \n",
" | parse_from_tags(self, root_tags: 'list[HtmlTag]', *, unwrap_elements: 'bool | None' = None, include_containers: 'bool | None' = None, include_irrelevant_elements: 'bool | None' = None) -> 'list[AbstractSemanticElement]'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from AbstractSemanticElementParser:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class EmptyElement(IrrelevantElement)\n",
" | EmptyElement(html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | \n",
" | The EmptyElement class represents an HTML element that does not contain any content.\n",
" | It is a subclass of the IrrelevantElement class and is used to identify and handle\n",
" | empty HTML tags in the document.\n",
" | \n",
" | Method resolution order:\n",
" | EmptyElement\n",
" | IrrelevantElement\n",
" | sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset()\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __init__(self, html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self) -> 'str'\n",
" | Return repr(self).\n",
" | \n",
" | contains_words(self) -> 'bool'\n",
" | Return True if the semantic element contains text.\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False, enable_compatibility: 'bool' = False) -> 'str'\n",
" | get_source_code is a passthrough to the HtmlTag method.\n",
" | \n",
" | get_summary(self) -> 'str'\n",
" | Return a human-readable summary of the semantic element.\n",
" | \n",
" | This method aims to provide a simplified, human-friendly representation of\n",
" | the underlying HtmlTag. In this base implementation, it is a passthrough\n",
" | to the HtmlTag's get_text() method.\n",
" | \n",
" | Note: Subclasses may override this method to provide a more specific summary\n",
" | based on the type of element.\n",
" | \n",
" | log_init(self, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Has to be called at the very end of the __init__ method.\n",
" | \n",
" | to_dict(self, *, include_previews: 'bool' = False, include_contents: 'bool' = False) -> 'dict[str, Any]'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Class methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | create_from_element(source: 'AbstractSemanticElement', log_origin: 'LogItemOrigin') -> 'AbstractSemanticElement' from abc.ABCMeta\n",
" | Convert the semantic element into another semantic element type.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | html_tag\n",
" | \n",
" | text\n",
" | Property text is a passthrough to the HtmlTag text property.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class HtmlTag(builtins.object)\n",
" | HtmlTag(bs4_element: 'bs4.PageElement') -> 'None'\n",
" | \n",
" | The HtmlTag class is a wrapper for BeautifulSoup4 Tag objects.\n",
" | \n",
" | It serves three main purposes:\n",
" | \n",
" | 1. Decoupling: By abstracting the underlying BeautifulSoup4 library, we\n",
" | can isolate our application logic from the library specifics. This\n",
" | makes it easier to modify or even replace the HTML parsing library in\n",
" | the future without extensive codebase changes.\n",
" | \n",
" | 2. Usability: The HtmlTag class provides a convenient location to add\n",
" | extension methods or additional properties not offered by the native\n",
" | BeautifulSoup4 Tag class. This enhances the usability of the class.\n",
" | \n",
" | 3. Caching: The HtmlTag class also caches processing results, improving\n",
" | performance by avoiding unnecessary re-computation.\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | __init__(self, bs4_element: 'bs4.PageElement') -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | contains_tag(self, name: 'str', *, include_self: 'bool' = False) -> 'bool'\n",
" | `contains_tag` method checks if the current HTML tag contains a descendant tag\n",
" | with the specified name. For example, calling contains_tag(\"b\") on an\n",
" | HtmlTag instance representing \"<div><p><b>text</b></p></div>\" would\n",
" | return True, as there is a 'b' tag within the descendants of the 'div' tag.\n",
" | \n",
" | contains_words(self) -> 'bool'\n",
" | Return True if the semantic element contains text.\n",
" | \n",
" | count_tags(self, name: 'str') -> 'int'\n",
" | `count_tags` method counts the number of descendant tags with the specified name\n",
" | within the current HTML tag. For example, calling count_tags(\"b\") on an\n",
" | HtmlTag instance representing \"<div><p><b>text</b></p><b>more text</b></div>\"\n",
" | would return 2, as there are two 'b' tags within the descendants of\n",
" | the 'div' tag.\n",
" | \n",
" | count_text_matches_in_descendants(self, predicate: 'Callable[[str], bool]', *, exclude_links: 'bool | None' = None) -> 'int'\n",
" | \n",
" | get_approx_table_metrics(self) -> 'ApproxTableMetrics | None'\n",
" | \n",
" | get_children(self) -> 'list[HtmlTag]'\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False, enable_compatibility: 'bool' = False) -> 'str'\n",
" | \n",
" | get_text_styles_metrics(self) -> 'dict[tuple[str, str], float]'\n",
" | Compute the percentage distribution of various CSS styles within the text\n",
" | content of a given HTML tag and its descendants.\n",
" | \n",
" | This function iterates through all the text nodes within the tag, recursively\n",
" | includes text from child elements, and calculates the effective styles applied\n",
" | to each text segment.\n",
" | \n",
" | It aggregates these styles and computes their percentage distribution based\n",
" | on the length of text they apply to.\n",
" | \n",
" | The function uses BeautifulSoup's recursive text search and parent traversal\n",
" | features. It returns a dictionary containing the aggregated style metrics\n",
" | (the percentage distribution of styles).\n",
" | \n",
" | Each dictionary entry corresponds to a unique style, (property, value) and\n",
" | the percentage of text it affects.\n",
" | \n",
" | has_tag_children(self) -> 'bool'\n",
" | \n",
" | has_text_outside_tags(self, tags: 'list[str] | str') -> 'bool'\n",
" | `has_text_outside_tags` function checks if the given\n",
" | node has any text outside the specified tag.\n",
" | For example, calling has_text_outside_tags(node, [\"b\"])\n",
" | on a node representing \"<div><p><b>text</b>extra text</p></div>\"\n",
" | would return True, as there is text outside the 'b'\n",
" | tag within the descendants of the 'div' tag.\n",
" | \n",
" | is_table_of_content(self) -> 'bool'\n",
" | \n",
" | is_unary_tree(self) -> 'bool'\n",
" | `is_unary_tree` determines if a BeautifulSoup tag forms a unary tree.\n",
" | In a unary tree, each node has at most one child.\n",
" | \n",
" | However, if a non-leaf node contains a non-empty string even without a tag\n",
" | surrounding it, the tree is not considered unary.\n",
" | \n",
" | Additionally, if the some tag is a 'table', the function will return True\n",
" | regardless of its children. This is because in the context of this application,\n",
" | 'table' tags are always considered unary.\n",
" | \n",
" | table_to_markdown(self) -> 'str'\n",
" | \n",
" | to_dict(self) -> 'frozendict'\n",
" | Compute the hash of the HTML tag.\n",
" | \n",
" | without_tags(self, names: 'Iterable[str]') -> 'HtmlTag'\n",
" | `without_tags` method creates a copy of the current HTML tag and removes all\n",
" | descendant tags with the specified name. For example, calling\n",
" | without_tags(tag, [\"b\",\"i\"]) on an HtmlTag instance representing\n",
" | \"<div><b>foo</b><p>bar<i>bax</i></p></div>\" would\n",
" | return a copy HtmlTag instance representing \"<div><p>bar</p></div>\".\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Static methods defined here:\n",
" | \n",
" | wrap_tags_in_new_parent(parent_tag_name: 'str', tags: 'Iterable[HtmlTag]') -> 'HtmlTag'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties defined here:\n",
" | \n",
" | name\n",
" | Returns tag name, e.g. for <div> return 'div'.\n",
" | \n",
" | parent\n",
" | \n",
" | text\n",
" | `text` property recursively extracts text from the child tags.\n",
" | The result is cached as the underlying data doesn't change.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors defined here:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class ImageElement(sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement)\n",
" | ImageElement(html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | \n",
" | The ImageElement class represents a standard image within a document.\n",
" | \n",
" | Method resolution order:\n",
" | ImageElement\n",
" | sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset()\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __init__(self, html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self) -> 'str'\n",
" | Return repr(self).\n",
" | \n",
" | contains_words(self) -> 'bool'\n",
" | Return True if the semantic element contains text.\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False, enable_compatibility: 'bool' = False) -> 'str'\n",
" | get_source_code is a passthrough to the HtmlTag method.\n",
" | \n",
" | get_summary(self) -> 'str'\n",
" | Return a human-readable summary of the semantic element.\n",
" | \n",
" | This method aims to provide a simplified, human-friendly representation of\n",
" | the underlying HtmlTag. In this base implementation, it is a passthrough\n",
" | to the HtmlTag's get_text() method.\n",
" | \n",
" | Note: Subclasses may override this method to provide a more specific summary\n",
" | based on the type of element.\n",
" | \n",
" | log_init(self, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Has to be called at the very end of the __init__ method.\n",
" | \n",
" | to_dict(self, *, include_previews: 'bool' = False, include_contents: 'bool' = False) -> 'dict[str, Any]'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Class methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | create_from_element(source: 'AbstractSemanticElement', log_origin: 'LogItemOrigin') -> 'AbstractSemanticElement' from abc.ABCMeta\n",
" | Convert the semantic element into another semantic element type.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | html_tag\n",
" | \n",
" | text\n",
" | Property text is a passthrough to the HtmlTag text property.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class IrrelevantElement(sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement)\n",
" | IrrelevantElement(html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | \n",
" | The IrrelevantElement class identifies elements in the parsed HTML that do not\n",
" | contribute to the content. These elements often include page separators, page\n",
" | numbers, and other non-content items. For instance, HTML tags without content\n",
" | like <p></p> or <div></div> are deemed irrelevant, often used in documents just\n",
" | to add vertical space.\n",
" | \n",
" | Method resolution order:\n",
" | IrrelevantElement\n",
" | sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset()\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __init__(self, html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self) -> 'str'\n",
" | Return repr(self).\n",
" | \n",
" | contains_words(self) -> 'bool'\n",
" | Return True if the semantic element contains text.\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False, enable_compatibility: 'bool' = False) -> 'str'\n",
" | get_source_code is a passthrough to the HtmlTag method.\n",
" | \n",
" | get_summary(self) -> 'str'\n",
" | Return a human-readable summary of the semantic element.\n",
" | \n",
" | This method aims to provide a simplified, human-friendly representation of\n",
" | the underlying HtmlTag. In this base implementation, it is a passthrough\n",
" | to the HtmlTag's get_text() method.\n",
" | \n",
" | Note: Subclasses may override this method to provide a more specific summary\n",
" | based on the type of element.\n",
" | \n",
" | log_init(self, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Has to be called at the very end of the __init__ method.\n",
" | \n",
" | to_dict(self, *, include_previews: 'bool' = False, include_contents: 'bool' = False) -> 'dict[str, Any]'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Class methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | create_from_element(source: 'AbstractSemanticElement', log_origin: 'LogItemOrigin') -> 'AbstractSemanticElement' from abc.ABCMeta\n",
" | Convert the semantic element into another semantic element type.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | html_tag\n",
" | \n",
" | text\n",
" | Property text is a passthrough to the HtmlTag text property.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class NotYetClassifiedElement(sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement)\n",
" | NotYetClassifiedElement(html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | \n",
" | The NotYetClassifiedElement class represents an element whose type\n",
" | has not yet been determined. The parsing process aims to\n",
" | classify all instances of this class into more specific\n",
" | subclasses of AbstractSemanticElement.\n",
" | \n",
" | Method resolution order:\n",
" | NotYetClassifiedElement\n",
" | sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset()\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __init__(self, html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self) -> 'str'\n",
" | Return repr(self).\n",
" | \n",
" | contains_words(self) -> 'bool'\n",
" | Return True if the semantic element contains text.\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False, enable_compatibility: 'bool' = False) -> 'str'\n",
" | get_source_code is a passthrough to the HtmlTag method.\n",
" | \n",
" | get_summary(self) -> 'str'\n",
" | Return a human-readable summary of the semantic element.\n",
" | \n",
" | This method aims to provide a simplified, human-friendly representation of\n",
" | the underlying HtmlTag. In this base implementation, it is a passthrough\n",
" | to the HtmlTag's get_text() method.\n",
" | \n",
" | Note: Subclasses may override this method to provide a more specific summary\n",
" | based on the type of element.\n",
" | \n",
" | log_init(self, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Has to be called at the very end of the __init__ method.\n",
" | \n",
" | to_dict(self, *, include_previews: 'bool' = False, include_contents: 'bool' = False) -> 'dict[str, Any]'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Class methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | create_from_element(source: 'AbstractSemanticElement', log_origin: 'LogItemOrigin') -> 'AbstractSemanticElement' from abc.ABCMeta\n",
" | Convert the semantic element into another semantic element type.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | html_tag\n",
" | \n",
" | text\n",
" | Property text is a passthrough to the HtmlTag text property.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class PageHeaderElement(IrrelevantElement)\n",
" | PageHeaderElement(html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | \n",
" | The PageHeaderElement class represents a page header within a document.\n",
" | It is a subclass of the IrrelevantElement class and is used to identify\n",
" | and handle page headers in the document, such as current section titles\n",
" | and company names.\n",
" | \n",
" | Method resolution order:\n",
" | PageHeaderElement\n",
" | IrrelevantElement\n",
" | sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset()\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __init__(self, html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self) -> 'str'\n",
" | Return repr(self).\n",
" | \n",
" | contains_words(self) -> 'bool'\n",
" | Return True if the semantic element contains text.\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False, enable_compatibility: 'bool' = False) -> 'str'\n",
" | get_source_code is a passthrough to the HtmlTag method.\n",
" | \n",
" | get_summary(self) -> 'str'\n",
" | Return a human-readable summary of the semantic element.\n",
" | \n",
" | This method aims to provide a simplified, human-friendly representation of\n",
" | the underlying HtmlTag. In this base implementation, it is a passthrough\n",
" | to the HtmlTag's get_text() method.\n",
" | \n",
" | Note: Subclasses may override this method to provide a more specific summary\n",
" | based on the type of element.\n",
" | \n",
" | log_init(self, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Has to be called at the very end of the __init__ method.\n",
" | \n",
" | to_dict(self, *, include_previews: 'bool' = False, include_contents: 'bool' = False) -> 'dict[str, Any]'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Class methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | create_from_element(source: 'AbstractSemanticElement', log_origin: 'LogItemOrigin') -> 'AbstractSemanticElement' from abc.ABCMeta\n",
" | Convert the semantic element into another semantic element type.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | html_tag\n",
" | \n",
" | text\n",
" | Property text is a passthrough to the HtmlTag text property.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class PageNumberElement(IrrelevantElement)\n",
" | PageNumberElement(html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | \n",
" | The PageNumberElement class represents a page number within a document.\n",
" | It is a subclass of the IrrelevantElement class and is used to identify\n",
" | and handle page numbers in the document.\n",
" | \n",
" | Method resolution order:\n",
" | PageNumberElement\n",
" | IrrelevantElement\n",
" | sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset()\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __init__(self, html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self) -> 'str'\n",
" | Return repr(self).\n",
" | \n",
" | contains_words(self) -> 'bool'\n",
" | Return True if the semantic element contains text.\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False, enable_compatibility: 'bool' = False) -> 'str'\n",
" | get_source_code is a passthrough to the HtmlTag method.\n",
" | \n",
" | get_summary(self) -> 'str'\n",
" | Return a human-readable summary of the semantic element.\n",
" | \n",
" | This method aims to provide a simplified, human-friendly representation of\n",
" | the underlying HtmlTag. In this base implementation, it is a passthrough\n",
" | to the HtmlTag's get_text() method.\n",
" | \n",
" | Note: Subclasses may override this method to provide a more specific summary\n",
" | based on the type of element.\n",
" | \n",
" | log_init(self, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Has to be called at the very end of the __init__ method.\n",
" | \n",
" | to_dict(self, *, include_previews: 'bool' = False, include_contents: 'bool' = False) -> 'dict[str, Any]'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Class methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | create_from_element(source: 'AbstractSemanticElement', log_origin: 'LogItemOrigin') -> 'AbstractSemanticElement' from abc.ABCMeta\n",
" | Convert the semantic element into another semantic element type.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | html_tag\n",
" | \n",
" | text\n",
" | Property text is a passthrough to the HtmlTag text property.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class ParsingOptions(builtins.object)\n",
" | ParsingOptions(html_integrity_checks: bool = False) -> None\n",
" | \n",
" | ParsingOptions(html_integrity_checks: bool = False)\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | __delattr__(self, name)\n",
" | Implement delattr(self, name).\n",
" | \n",
" | __eq__(self, other)\n",
" | Return self==value.\n",
" | \n",
" | __hash__(self)\n",
" | Return hash(self).\n",
" | \n",
" | __init__(self, html_integrity_checks: bool = False) -> None\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self)\n",
" | Return repr(self).\n",
" | \n",
" | __setattr__(self, name, value)\n",
" | Implement setattr(self, name, value).\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors defined here:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data and other attributes defined here:\n",
" | \n",
" | __annotations__ = {'html_integrity_checks': <class 'bool'>}\n",
" | \n",
" | __dataclass_fields__ = {'html_integrity_checks': Field(name='html_inte...\n",
" | \n",
" | __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...\n",
" | \n",
" | __match_args__ = ('html_integrity_checks',)\n",
" | \n",
" | html_integrity_checks = False\n",
" \n",
" class SecParserError(builtins.Exception)\n",
" | Base exception class for sec_parser.\n",
" | All custom exceptions in sec_parser are inherited from this class.\n",
" | \n",
" | Method resolution order:\n",
" | SecParserError\n",
" | builtins.Exception\n",
" | builtins.BaseException\n",
" | builtins.object\n",
" | \n",
" | Data descriptors defined here:\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from builtins.Exception:\n",
" | \n",
" | __init__(self, /, *args, **kwargs)\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Static methods inherited from builtins.Exception:\n",
" | \n",
" | __new__(*args, **kwargs) from builtins.type\n",
" | Create and return a new object. See help(type) for accurate signature.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from builtins.BaseException:\n",
" | \n",
" | __delattr__(self, name, /)\n",
" | Implement delattr(self, name).\n",
" | \n",
" | __getattribute__(self, name, /)\n",
" | Return getattr(self, name).\n",
" | \n",
" | __reduce__(...)\n",
" | Helper for pickle.\n",
" | \n",
" | __repr__(self, /)\n",
" | Return repr(self).\n",
" | \n",
" | __setattr__(self, name, value, /)\n",
" | Implement setattr(self, name, value).\n",
" | \n",
" | __setstate__(...)\n",
" | \n",
" | __str__(self, /)\n",
" | Return str(self).\n",
" | \n",
" | with_traceback(...)\n",
" | Exception.with_traceback(tb) --\n",
" | set self.__traceback__ to tb and return self.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from builtins.BaseException:\n",
" | \n",
" | __cause__\n",
" | exception cause\n",
" | \n",
" | __context__\n",
" | exception context\n",
" | \n",
" | __dict__\n",
" | \n",
" | __suppress_context__\n",
" | \n",
" | __traceback__\n",
" | \n",
" | args\n",
" \n",
" class SecParserRuntimeError(SecParserError, builtins.RuntimeError)\n",
" | Method resolution order:\n",
" | SecParserRuntimeError\n",
" | SecParserError\n",
" | builtins.RuntimeError\n",
" | builtins.Exception\n",
" | builtins.BaseException\n",
" | builtins.object\n",
" | \n",
" | Data descriptors inherited from SecParserError:\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from builtins.RuntimeError:\n",
" | \n",
" | __init__(self, /, *args, **kwargs)\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Static methods inherited from builtins.RuntimeError:\n",
" | \n",
" | __new__(*args, **kwargs) from builtins.type\n",
" | Create and return a new object. See help(type) for accurate signature.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from builtins.BaseException:\n",
" | \n",
" | __delattr__(self, name, /)\n",
" | Implement delattr(self, name).\n",
" | \n",
" | __getattribute__(self, name, /)\n",
" | Return getattr(self, name).\n",
" | \n",
" | __reduce__(...)\n",
" | Helper for pickle.\n",
" | \n",
" | __repr__(self, /)\n",
" | Return repr(self).\n",
" | \n",
" | __setattr__(self, name, value, /)\n",
" | Implement setattr(self, name, value).\n",
" | \n",
" | __setstate__(...)\n",
" | \n",
" | __str__(self, /)\n",
" | Return str(self).\n",
" | \n",
" | with_traceback(...)\n",
" | Exception.with_traceback(tb) --\n",
" | set self.__traceback__ to tb and return self.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from builtins.BaseException:\n",
" | \n",
" | __cause__\n",
" | exception cause\n",
" | \n",
" | __context__\n",
" | exception context\n",
" | \n",
" | __dict__\n",
" | \n",
" | __suppress_context__\n",
" | \n",
" | __traceback__\n",
" | \n",
" | args\n",
" \n",
" class SecParserValueError(SecParserError, builtins.ValueError)\n",
" | Method resolution order:\n",
" | SecParserValueError\n",
" | SecParserError\n",
" | builtins.ValueError\n",
" | builtins.Exception\n",
" | builtins.BaseException\n",
" | builtins.object\n",
" | \n",
" | Data descriptors inherited from SecParserError:\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from builtins.ValueError:\n",
" | \n",
" | __init__(self, /, *args, **kwargs)\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Static methods inherited from builtins.ValueError:\n",
" | \n",
" | __new__(*args, **kwargs) from builtins.type\n",
" | Create and return a new object. See help(type) for accurate signature.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from builtins.BaseException:\n",
" | \n",
" | __delattr__(self, name, /)\n",
" | Implement delattr(self, name).\n",
" | \n",
" | __getattribute__(self, name, /)\n",
" | Return getattr(self, name).\n",
" | \n",
" | __reduce__(...)\n",
" | Helper for pickle.\n",
" | \n",
" | __repr__(self, /)\n",
" | Return repr(self).\n",
" | \n",
" | __setattr__(self, name, value, /)\n",
" | Implement setattr(self, name, value).\n",
" | \n",
" | __setstate__(...)\n",
" | \n",
" | __str__(self, /)\n",
" | Return str(self).\n",
" | \n",
" | with_traceback(...)\n",
" | Exception.with_traceback(tb) --\n",
" | set self.__traceback__ to tb and return self.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from builtins.BaseException:\n",
" | \n",
" | __cause__\n",
" | exception cause\n",
" | \n",
" | __context__\n",
" | exception context\n",
" | \n",
" | __dict__\n",
" | \n",
" | __suppress_context__\n",
" | \n",
" | __traceback__\n",
" | \n",
" | args\n",
" \n",
" class SemanticTree(builtins.object)\n",
" | SemanticTree(root_nodes: 'list[TreeNode]') -> 'None'\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | __init__(self, root_nodes: 'list[TreeNode]') -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __iter__(self) -> 'Iterator[TreeNode]'\n",
" | Iterate over the root nodes of the tree.\n",
" | \n",
" | __len__(self) -> 'int'\n",
" | \n",
" | print(self, *, pretty: 'bool | None' = True, ignored_types: 'tuple[type[AbstractSemanticElement], ...] | None' = None, char_display_limit: 'int | None' = None, verbose: 'bool' = False, line_limit: 'int | None' = None) -> 'None'\n",
" | Print the semantic tree as a human-readable string.\n",
" | \n",
" | Syntactic sugar for a more convenient usage of `render`.\n",
" | \n",
" | render(self, *, pretty: 'bool | None' = True, ignored_types: 'tuple[type[AbstractSemanticElement], ...] | None' = None, char_display_limit: 'int | None' = None, verbose: 'bool' = False) -> 'str'\n",
" | Render the semantic tree as a human-readable string.\n",
" | \n",
" | Syntactic sugar for a more convenient usage of `render`.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties defined here:\n",
" | \n",
" | nodes\n",
" | Get all nodes in the semantic tree. This includes the root nodes and all\n",
" | their descendants.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors defined here:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class SupplementaryText(sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin, sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement)\n",
" | SupplementaryText(html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | \n",
" | The SupplementaryText class captures various types of supplementary text\n",
" | within a document, such as unit qualifiers, additional notes, and disclaimers.\n",
" | \n",
" | For example:\n",
" | - \"(In millions, except number of shares which are reflected in thousands and\n",
" | per share amounts)\"\n",
" | - \"See accompanying Notes to Condensed Consolidated Financial Statements.\"\n",
" | - \"Disclaimer: This is not financial advice.\"\n",
" | \n",
" | Method resolution order:\n",
" | SupplementaryText\n",
" | sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin\n",
" | sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset()\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin:\n",
" | \n",
" | to_dict(self, *, include_previews: bool = False, include_contents: bool = False) -> dict[str, typing.Any]\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __init__(self, html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self) -> 'str'\n",
" | Return repr(self).\n",
" | \n",
" | contains_words(self) -> 'bool'\n",
" | Return True if the semantic element contains text.\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False, enable_compatibility: 'bool' = False) -> 'str'\n",
" | get_source_code is a passthrough to the HtmlTag method.\n",
" | \n",
" | get_summary(self) -> 'str'\n",
" | Return a human-readable summary of the semantic element.\n",
" | \n",
" | This method aims to provide a simplified, human-friendly representation of\n",
" | the underlying HtmlTag. In this base implementation, it is a passthrough\n",
" | to the HtmlTag's get_text() method.\n",
" | \n",
" | Note: Subclasses may override this method to provide a more specific summary\n",
" | based on the type of element.\n",
" | \n",
" | log_init(self, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Has to be called at the very end of the __init__ method.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Class methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | create_from_element(source: 'AbstractSemanticElement', log_origin: 'LogItemOrigin') -> 'AbstractSemanticElement' from abc.ABCMeta\n",
" | Convert the semantic element into another semantic element type.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | html_tag\n",
" | \n",
" | text\n",
" | Property text is a passthrough to the HtmlTag text property.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class TableElement(sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement)\n",
" | TableElement(html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | \n",
" | The TableElement class represents a standard table within a document.\n",
" | \n",
" | Method resolution order:\n",
" | TableElement\n",
" | sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | get_summary(self) -> 'str'\n",
" | Return a human-readable summary of the semantic element.\n",
" | \n",
" | This method aims to provide a simplified, human-friendly representation of\n",
" | the underlying HtmlTag.\n",
" | \n",
" | table_to_markdown(self) -> 'str'\n",
" | \n",
" | to_dict(self, *, include_previews: 'bool' = False, include_contents: 'bool' = False) -> 'dict[str, Any]'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset()\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __init__(self, html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self) -> 'str'\n",
" | Return repr(self).\n",
" | \n",
" | contains_words(self) -> 'bool'\n",
" | Return True if the semantic element contains text.\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False, enable_compatibility: 'bool' = False) -> 'str'\n",
" | get_source_code is a passthrough to the HtmlTag method.\n",
" | \n",
" | log_init(self, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Has to be called at the very end of the __init__ method.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Class methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | create_from_element(source: 'AbstractSemanticElement', log_origin: 'LogItemOrigin') -> 'AbstractSemanticElement' from abc.ABCMeta\n",
" | Convert the semantic element into another semantic element type.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | html_tag\n",
" | \n",
" | text\n",
" | Property text is a passthrough to the HtmlTag text property.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class TextElement(sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin, sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement)\n",
" | TextElement(html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | \n",
" | The TextElement class represents a standard text paragraph within a document.\n",
" | \n",
" | Method resolution order:\n",
" | TextElement\n",
" | sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin\n",
" | sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset()\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin:\n",
" | \n",
" | to_dict(self, *, include_previews: bool = False, include_contents: bool = False) -> dict[str, typing.Any]\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __init__(self, html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self) -> 'str'\n",
" | Return repr(self).\n",
" | \n",
" | contains_words(self) -> 'bool'\n",
" | Return True if the semantic element contains text.\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False, enable_compatibility: 'bool' = False) -> 'str'\n",
" | get_source_code is a passthrough to the HtmlTag method.\n",
" | \n",
" | get_summary(self) -> 'str'\n",
" | Return a human-readable summary of the semantic element.\n",
" | \n",
" | This method aims to provide a simplified, human-friendly representation of\n",
" | the underlying HtmlTag. In this base implementation, it is a passthrough\n",
" | to the HtmlTag's get_text() method.\n",
" | \n",
" | Note: Subclasses may override this method to provide a more specific summary\n",
" | based on the type of element.\n",
" | \n",
" | log_init(self, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Has to be called at the very end of the __init__ method.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Class methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | create_from_element(source: 'AbstractSemanticElement', log_origin: 'LogItemOrigin') -> 'AbstractSemanticElement' from abc.ABCMeta\n",
" | Convert the semantic element into another semantic element type.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | html_tag\n",
" | \n",
" | text\n",
" | Property text is a passthrough to the HtmlTag text property.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class TitleElement(sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin, sec_parser.semantic_elements.abstract_semantic_element.AbstractLevelElement)\n",
" | TitleElement(html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, level: 'int | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | \n",
" | The TitleElement class represents the title of a paragraph or other content object.\n",
" | It serves as a semantic marker, providing context and structure to the document.\n",
" | \n",
" | Method resolution order:\n",
" | TitleElement\n",
" | sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin\n",
" | sec_parser.semantic_elements.abstract_semantic_element.AbstractLevelElement\n",
" | sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset()\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin:\n",
" | \n",
" | to_dict(self, *, include_previews: bool = False, include_contents: bool = False) -> dict[str, typing.Any]\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractLevelElement:\n",
" | \n",
" | __init__(self, html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, level: 'int | None' = None, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self) -> 'str'\n",
" | Return repr(self).\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Class methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractLevelElement:\n",
" | \n",
" | create_from_element(source: 'AbstractSemanticElement', log_origin: 'LogItemOrigin', *, level: 'int | None' = None) -> 'AbstractLevelElement' from abc.ABCMeta\n",
" | Convert the semantic element into another semantic element type.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data and other attributes inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractLevelElement:\n",
" | \n",
" | MIN_LEVEL = 0\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | contains_words(self) -> 'bool'\n",
" | Return True if the semantic element contains text.\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False, enable_compatibility: 'bool' = False) -> 'str'\n",
" | get_source_code is a passthrough to the HtmlTag method.\n",
" | \n",
" | get_summary(self) -> 'str'\n",
" | Return a human-readable summary of the semantic element.\n",
" | \n",
" | This method aims to provide a simplified, human-friendly representation of\n",
" | the underlying HtmlTag. In this base implementation, it is a passthrough\n",
" | to the HtmlTag's get_text() method.\n",
" | \n",
" | Note: Subclasses may override this method to provide a more specific summary\n",
" | based on the type of element.\n",
" | \n",
" | log_init(self, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Has to be called at the very end of the __init__ method.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | html_tag\n",
" | \n",
" | text\n",
" | Property text is a passthrough to the HtmlTag text property.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class TopSectionTitle(sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin, sec_parser.semantic_elements.top_section_start_marker.TopSectionStartMarker)\n",
" | TopSectionTitle(html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None, level: 'int | None' = None, section_type: 'TopSectionType | None' = None) -> 'None'\n",
" | \n",
" | The TopSectionTitle class represents the title and the beginning of a top-level\n",
" | section of a document. For instance, in SEC 10-Q reports, a\n",
" | top-level section could be \"Part I, Item 3. Quantitative and Qualitative\n",
" | Disclosures About Market Risk.\".\n",
" | \n",
" | Method resolution order:\n",
" | TopSectionTitle\n",
" | sec_parser.semantic_elements.mixins.dict_text_content_mixin.DictTextContentMixin\n",
" | sec_parser.semantic_elements.top_section_start_marker.TopSectionStartMarker\n",
" | sec_parser.semantic_elements.abstract_semantic_element.AbstractLevelElement\n",
" | sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement\n",
" | abc.ABC\n",
" | builtins.object\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | __init__(self, html_tag: 'HtmlTag', *, processing_log: 'ProcessingLog | None' = None, log_origin: 'LogItemOrigin | None' = None, level: 'int | None' = None, section_type: 'TopSectionType | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | to_dict(self, *, include_previews: 'bool' = False, include_contents: 'bool' = False) -> 'dict[str, Any]'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Class methods defined here:\n",
" | \n",
" | create_from_element(source: 'AbstractSemanticElement', log_origin: 'LogItemOrigin', *, level: 'int | None' = None, section_type: 'TopSectionType | None' = None) -> 'AbstractLevelElement' from abc.ABCMeta\n",
" | Convert the semantic element into another semantic element type.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data and other attributes defined here:\n",
" | \n",
" | __abstractmethods__ = frozenset()\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractLevelElement:\n",
" | \n",
" | __repr__(self) -> 'str'\n",
" | Return repr(self).\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data and other attributes inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractLevelElement:\n",
" | \n",
" | MIN_LEVEL = 0\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Methods inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | contains_words(self) -> 'bool'\n",
" | Return True if the semantic element contains text.\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False, enable_compatibility: 'bool' = False) -> 'str'\n",
" | get_source_code is a passthrough to the HtmlTag method.\n",
" | \n",
" | get_summary(self) -> 'str'\n",
" | Return a human-readable summary of the semantic element.\n",
" | \n",
" | This method aims to provide a simplified, human-friendly representation of\n",
" | the underlying HtmlTag. In this base implementation, it is a passthrough\n",
" | to the HtmlTag's get_text() method.\n",
" | \n",
" | Note: Subclasses may override this method to provide a more specific summary\n",
" | based on the type of element.\n",
" | \n",
" | log_init(self, log_origin: 'LogItemOrigin | None' = None) -> 'None'\n",
" | Has to be called at the very end of the __init__ method.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | html_tag\n",
" | \n",
" | text\n",
" | Property text is a passthrough to the HtmlTag text property.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors inherited from sec_parser.semantic_elements.abstract_semantic_element.AbstractSemanticElement:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class TreeBuilder(builtins.object)\n",
" | TreeBuilder(get_rules: 'Callable[[], list[AbstractNestingRule]] | None' = None) -> 'None'\n",
" | \n",
" | Builds a semantic tree from a list of semantic elements.\n",
" | \n",
" | Why Use a Tree Structure?\n",
" | =========================\n",
" | Using a tree data structure allows for easier and more robust filtering of sections.\n",
" | With a tree, you can select specific branches to filter, making it straightforward\n",
" | to identify section boundaries. This approach is more maintainable and robust\n",
" | compared to attempting the same operations on a flat list of elements.\n",
" | \n",
" | Overview:\n",
" | =========\n",
" | 1. Takes a list of semantic elements.\n",
" | 2. Applies nesting rules to these elements.\n",
" | \n",
" | Customization:\n",
" | ==============\n",
" | The nesting process is customizable through a list of rules. These rules determine\n",
" | how new elements should be nested under existing ones.\n",
" | \n",
" | Advanced Customization:\n",
" | =======================\n",
" | You can supply your own set of rules by providing a callable to `get_rules`, which\n",
" | should return a list of `AbstractNestingRule` instances.\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | __init__(self, get_rules: 'Callable[[], list[AbstractNestingRule]] | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | build(self, elements: 'list[AbstractSemanticElement]') -> 'SemanticTree'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Static methods defined here:\n",
" | \n",
" | get_default_rules() -> 'list[AbstractNestingRule]'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors defined here:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" \n",
" class TreeNode(builtins.object)\n",
" | TreeNode(semantic_element: 'AbstractSemanticElement', *, parent: 'TreeNode | None' = None, children: 'Iterable[TreeNode] | None' = None) -> 'None'\n",
" | \n",
" | The TreeNode class is a fundamental part of the semantic tree structure.\n",
" | Each TreeNode represents a node in the tree. It holds a reference to a semantic\n",
" | element, maintains a list of its child nodes, and a reference to its parent node.\n",
" | This class provides methods for managing the tree structure, such as adding and\n",
" | removing child nodes.\n",
" | Importantly, these methods ensure logical consistency as children/parents are\n",
" | being changed.\n",
" | For example, if a parent is removed from a child, the child is automatically\n",
" | removed from the parent.\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | __init__(self: 'TreeNode', semantic_element: 'AbstractSemanticElement', *, parent: 'TreeNode | None' = None, children: 'Iterable[TreeNode] | None' = None) -> 'None'\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self: 'TreeNode') -> 'str'\n",
" | Return repr(self).\n",
" | \n",
" | add_child(self: 'TreeNode', child: 'TreeNode') -> 'None'\n",
" | \n",
" | add_children(self: 'TreeNode', children: 'Iterable[TreeNode]') -> 'None'\n",
" | \n",
" | get_descendants(self: 'TreeNode') -> 'Iterator[TreeNode]'\n",
" | \n",
" | get_source_code(self, *, pretty: 'bool' = False) -> 'str'\n",
" | get_source_code is a passthrough to the SemanticElement method.\n",
" | \n",
" | has_child(self: 'TreeNode', child: 'TreeNode') -> 'bool'\n",
" | \n",
" | remove_child(self: 'TreeNode', child: 'TreeNode') -> 'None'\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Readonly properties defined here:\n",
" | \n",
" | children\n",
" | \n",
" | semantic_element\n",
" | \n",
" | text\n",
" | Property text is a passthrough to the SemanticElement text property.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors defined here:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" | \n",
" | parent\n",
"\n",
"FUNCTIONS\n",
" render(tree: 'list[TreeNode] | TreeNode | SemanticTree | list[AbstractSemanticElement]', *, pretty: 'bool | None' = True, ignored_types: 'tuple[type[AbstractSemanticElement], ...] | None' = None, char_display_limit: 'int | None' = None, verbose: 'bool' = False, _nodes: 'list[TreeNode] | None' = None, _level: 'int' = 0, _prefix: 'str' = '', _is_root: 'bool' = True) -> 'str'\n",
" render function is used to visualize the structure of the semantic tree.\n",
" It is primarily used for debugging purposes.\n",
"\n",
"DATA\n",
" __all__ = ['Edgar10QParser', 'TreeBuilder', 'AbstractSemanticElement',...\n",
"\n",
"FILE\n",
" /home/zeus/miniconda3/envs/cloudspace/lib/python3.10/site-packages/sec_parser/__init__.py\n",
"\n",
"\n"
]
}
],
"source": [
"#from sec_parser import table_to_markdown\n",
"help(sp)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment