Skip to main content

Solid financial ETL, analytics and utils with support to global markets.

Project description

stpstone stpstone

Project Status: Active โ€“ The project has reached a stable, usable state and is being actively developed. Python Version PyPI Version Linting Security License PyPI Downloads Open Issues Contributions Welcome

stpstone (short for stepping stone) is a Python framework designed for ingesting, processing, and analyzing structured and unstructured financial data. It provides tools for ETL (Extract, Transform, Load), quantitative analysis, and derivatives pricing, optimized for financial market applications.

โœจ Key Features

๐ŸŒ Data Extraction

๐Ÿ‡ง๐Ÿ‡ท Brazilian Markets (B3)

Equities & Derivatives
Fixed Income
Macroeconomic Data
Registries & Regulatory

๐Ÿ‡บ๐Ÿ‡ธ US Markets

Equities & ETFs
Macroeconomic Data

๐ŸŒ Worldwide Markets

Cryptocurrencies
Global Markets
Global Fixed Income
Credit Ratings & Risk

๐Ÿ”„ Data Transformation

Data Cleaning

Data Standardization

Data Validation


๐Ÿ“ฅ Data Loading

Database Connectors

Cloud Storage


๐Ÿ“Š Analytics

Quantitative Analysis

Performance Metrics

Pricing Models

Risk Management

Computer Arithmetic


โš™๏ธ Utilities

Microsoft Office Integration

Data Parsers

Structured Data
Unstructured Data
Data Structure Parsers
Specialized Formats

Data Pipelines

Network Operations

Calendar & Date Utilities

Geographic Data

Data Providers

Trading & Automation

Communication & Notifications

Other Utilities


๐Ÿ—๏ธ Data Structures & Algorithms

Queue Implementations

Stack Implementations

Tree Structures

๐Ÿš€ Getting Started

Prerequisites:

  • Python ^3.12

  • Pyenv

  • Make (optional, below are some benefits of usage)

    Category Example Targets Benefit
    Package Lifecycle build_package_pypi_org, clean_dist Automated PyPI publishing
    Git Workflows git_pull_force, gh_protect_main Enforces branch policies
    CI/CD gh_actions_local_tests Local pipeline validation
    Code Generation ingestion_concrete_creator Factory pattern automation
    Dev Environment vscode_install_extensions Consistent IDE setup

Installation Guide:

  • Option 1: Pip Install (Recommended) ๐Ÿ“Œ Available on PyPI

    
     #!/bin/bash
     pip install stpstone
     poetry install --no-root
     poetry shell
     
  • Option 2: Build from Source

    
      #!/bin/bash
      git clone https://github.com/guilhermegor/stpstone.git
      cd stpstone
      pyenv install 3.12.8
      pyenv local 3.12.8
      poetry install --no-root
      poetry shell
      
  • Setting Up Make (Optional for Build Automation)

    Platform Instructions
    Windows Install via MinGW
    1. Download MinGW installer
    2. Select mingw32-make during installation
    3. Add C:\MinGW\bin to PATH
    4. mingw32-make --version
    MacOS Pre-installed or via Xcode CLI tools:
    xcode-select --install
    Linux Install via package manager:
    sudo apt-get install build-essential
  • Python Kernel Versioning (Pyenv): pyenv instructions to installation

๐Ÿงช Running Tests

Execute unit and integration tests:


#!/bin/bash
poetry run python -m unittest discover -s tests/unit -p "*.py" -v
poetry run python -m unittest discover -s tests/integration -p "*.py" -v

๐Ÿ“‚ Project Structure


stpstone/
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ .github/
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ workflows/         # GitHub Actions CI/CD pipelines
โ”‚   โ”œโ”€โ”€ ๐Ÿ“œ CODEOWNERS         # Code ownership definitions
โ”‚   โ””โ”€โ”€ ๐Ÿ“œ PULL_REQUEST_TEMPLATE.md  # PR template
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ .vscode/               # VSCode configuration
โ”‚   โ””โ”€โ”€ โš™๏ธ settings.json      # Editor preferences and extensions
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ cli/                   # Command Line Interface components
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ data/                  # Data storage and management
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ docs/                  # Project documentation
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ examples/              # Example implementations
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ img/                   # Visual assets
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ stpstone/              # Core Python package
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ _config/           # Configuration management
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ analysis/          # Analytical components
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ dsa/               # Data structures & algorithms
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ ingestion/         # Data ingestion pipelines
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ transformations/   # Data transformation logic
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ utils/             # Shared utilities
โ”‚   โ””โ”€โ”€ ๐Ÿ __init__.py        # Package initialization
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ tests/                 # Test suites
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ unit/              # Unit tests
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ integration/       # Integration tests
โ”‚   โ””โ”€โ”€ ๐Ÿ“ performance/       # Performance benchmarking
โ”‚
โ”œโ”€โ”€ ๐Ÿ“œ .gitignore             # Git ignore patterns
โ”œโ”€โ”€ โš™๏ธ .pre-commit-config.yaml # Pre-commit hook configurations
โ”œโ”€โ”€ ๏ฟฝ .python-version        # Pyenv version specification
โ”œโ”€โ”€ ๐Ÿ“œ LICENSE               # MIT License file
โ”œโ”€โ”€ โš™๏ธ Makefile              # Automation tasks
โ”œโ”€โ”€ ๐Ÿ“ฆ poetry.lock           # Exact dependency versions
โ”œโ”€โ”€ โš™๏ธ pyproject.toml        # Project metadata and dependencies
โ”œโ”€โ”€ ๐Ÿ“– README.md             # Project overview
โ”œโ”€โ”€ ๐Ÿ“ฆ requirements.txt      # Production dependencies
โ”œโ”€โ”€ ๐Ÿ”ง requirements-dev.txt  # Development dependencies
โ””โ”€โ”€ ๐Ÿ’ป requirements-venv.txt # Virtual environment setup

๐Ÿ‘จโ€๐Ÿ’ป Authors

Guilherme Rodrigues
GitHub
LinkedIn

๐Ÿ“œ License

This project is licensed under the MIT License - see LICENSE for details.

๐Ÿ™Œ Acknowledgments

  • Inspired by open-source financial libraries and tools

  • This documentation follows a structure inspired by PurpleBooth's README-Template.md.

  • Special thanks to Python community

๐Ÿ”— Useful Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stpstone-2.0.6.tar.gz (279.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stpstone-2.0.6-py3-none-any.whl (363.8 kB view details)

Uploaded Python 3

File details

Details for the file stpstone-2.0.6.tar.gz.

File metadata

  • Download URL: stpstone-2.0.6.tar.gz
  • Upload date:
  • Size: 279.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for stpstone-2.0.6.tar.gz
Algorithm Hash digest
SHA256 64a27e9aba8ce657ad392fa732ec84da685283e9e9143ad954877f4341997ab8
MD5 70ab4b14ea24dc45eb680922830e9a5f
BLAKE2b-256 013202a31ee388c22b8beca3513d6db66ca065e0d15dae11bf154dc27ebaee4d

See more details on using hashes here.

File details

Details for the file stpstone-2.0.6-py3-none-any.whl.

File metadata

  • Download URL: stpstone-2.0.6-py3-none-any.whl
  • Upload date:
  • Size: 363.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for stpstone-2.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f88f9c51c29e029ef980a49a8155a5d1bb5c28214415a69007acf18a56863f2c
MD5 dbbe1e7e3f50b4506cfd14425c0fbc2f
BLAKE2b-256 c2e0d4ae493b1b8abed2d4613e78e24c6f938339bb3f220daefe9f4d62121e5a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page