diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 291165f..ef759d3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -34,5 +34,6 @@ jobs: NEW_VERSION="${POETRY_VERSION}.post${{ github.run_number }}" poetry version "${NEW_VERSION}" fi + poetry run task generate-pypi-readme poetry build poetry publish --username __token__ --password ${{ secrets.PUBLIC_PYPI_API_TOKEN }} diff --git a/README.md b/README.md index 6bb3b18..b23005f 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,10 @@ HitCount X (formerly Twitter) Follow GitHub stars + +

+
Parse SEC EDGAR HTML documents into a tree of elements that correspond to the visual structure of the document.
@@ -43,7 +46,6 @@ ## Overview - The `sec-parser` project simplifies the process of extracting meaningful information from SEC EDGAR HTML documents. It organizes the document's source code into a list or tree of elements that correspond to the visual structure of the document. This includes distinct elements for section titles, paragraphs, and tables, making the data easier to analyze and understand. This tool is especially beneficial for Artificial Intelligence (AI) and Large Language Models (LLM) applications. It significantly improves the efficiency of data extraction and analysis in these fields. diff --git a/Taskfile.yml b/Taskfile.yml index 7aacb88..988b895 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -84,3 +84,27 @@ tasks: cmds: # PYTHONPATH is added to make streamlit watch file changes. Read more: https://docs.streamlit.io/knowledge-base/using-streamlit/streamlit-watch-changes-other-modules-importing-app - export PYTHONPATH=$PYTHONPATH:$(pwd)/sec_parser; poetry run streamlit run debug_tools/parser_output_visualizer/app.py --server.runOnSave=true + +######################## +### CI/CD Automation ### +######################## + + generate-pypi-readme: + desc: Generate the README file for PyPI. + cmds: + # Copy the main README.md to docs/README-pypi.md for PyPI. + - cp README.md docs/README-pypi.md + + # Check for the existence of the image tag in the newly copied README. Exit with error if not found. + # This will make sure the CI/CD fails, drawing attention to the problem. + - grep -q '\"sec-parser' docs/README-pypi.md || { echo "String not found!"; exit 1; } + + # Replace the image tag with 'SEC-PARSER' text. + # Output the result to a temporary file, avoiding in-place issues between macOS and Linux. + - sed 's/\"sec-parser/SEC-PARSER/g' docs/README-pypi.md > docs/README-pypi.md.tmp + + # Replace repeating occurrences of   with a single  . This command is compatible with both macOS and Linux. + - if [[ "$OSTYPE" == "darwin"* ]]; then sed -E 's/( )+/\1/g' docs/README-pypi.md.tmp > docs/README-pypi.md; else sed -r 's/( )+/\1/g' docs/README-pypi.md.tmp > docs/README-pypi.md; fi + + # Remove the temporary file, as it's no longer needed. + - rm docs/README-pypi.md.tmp diff --git a/docs/README-pypi.md b/docs/README-pypi.md new file mode 100644 index 0000000..22129de --- /dev/null +++ b/docs/README-pypi.md @@ -0,0 +1,84 @@ +

 

+

+

SEC-PARSER

+

+

+ + Essentials ➔  + Licence + Project Type: Federation + Experimental +
+ Health ➔  + GitHub Workflow Status (with event) + Last Commit +
+ Quality ➔  + codecov + + Code Style: Black + Ruff +
+ Distribution ➔  + PyPI version + PyPI - Python Version + PyPI downloads +
+ Community ➔  + HitCount + X (formerly Twitter) Follow + GitHub stars + + +

+ +
+ Parse SEC EDGAR HTML documents into a tree of elements that correspond to the visual structure of the document. +
+
+ + Demo | + Discussions | + Issues + +
+
+ +## Overview + +The `sec-parser` project simplifies the process of extracting meaningful information from SEC EDGAR HTML documents. It organizes the document's source code into a list or tree of elements that correspond to the visual structure of the document. This includes distinct elements for section titles, paragraphs, and tables, making the data easier to analyze and understand. + +This tool is especially beneficial for Artificial Intelligence (AI) and Large Language Models (LLM) applications. It significantly improves the efficiency of data extraction and analysis in these fields. + +[**Explore the Demo!**](https://sec-parser-output-visualizer.app.alphanome.dev/) + +## Installation + +You can install `sec-parser` using pip: + +```bash +pip install sec-parser +``` + +## Usage + +```python +import sec_parser as sp + +tree = sp.parse_latest("10-K", ticker="AAPL") + +# Show the general structure of the tree +print(tree.render()) +``` +Console output: +``` +RootSectionElement: PART I — FINANCIAL INFORMATION +├── TitleElement: Item 1. Financial Statements +│ ├── TitleElement: CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (U... +│ │ ├── TextElement: (In millions, except number of shares which are re... +│ │ ├── TableElement: ... +│ ... +``` + +# License +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. diff --git a/pyproject.toml b/pyproject.toml index 8f354e7..ff2817e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,6 +4,7 @@ version = "0.8.0" description = "A robust and efficient parser for SEC filings, designed to extract and analyze financial data with ease." authors = ["Alphanome.AI "] readme = "README.md" +repository = "https://github.com/alphanome-ai/sec-parser" [tool.poetry.dependencies]