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.0.tar.gz (16.1 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.0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: stpstone-2.0.0.tar.gz
  • Upload date:
  • Size: 16.1 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.0.tar.gz
Algorithm Hash digest
SHA256 ae4856d068fcb9b74d4926e5ffafdd006266a39fd6fabef42b1cd9cf3e2dbc8a
MD5 3e7aa6f0cdbbf8ca6986ca9d712d0e6c
BLAKE2b-256 70297f416ac895e5e17b41f86a052d6dc6d41bebadc9177a065c74d4131e4a36

See more details on using hashes here.

File details

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

File metadata

  • Download URL: stpstone-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.5 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd3344c9e8ce71c304c3e0c7385b8ec87ad98ed0cef34efe1959d2de6c29712c
MD5 2888f50f3d3af6d2a3695dbefc0e5e63
BLAKE2b-256 549f4a38c55f5f9188e4d08f9eb908e863516efca1e2752262e86bbf96a6e9a0

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