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

Optional:

  • Pyenv: Installation Guide

  • Makefile (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_setup Consistent IDE setup
  • Makefile Installation Options for Windows:

  • Makefile Installation for MacOS:

  • Makefile Installation for Ubuntu: Preinstalled, no action needed

Installation Guide:

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

    
     #!/bin/bash
     pip install stpstone
     
  • 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.16.tar.gz (315.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.16-py3-none-any.whl (457.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: stpstone-2.0.16.tar.gz
  • Upload date:
  • Size: 315.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.8 Linux/6.11.0-1015-azure

File hashes

Hashes for stpstone-2.0.16.tar.gz
Algorithm Hash digest
SHA256 bf099d30b2b6baab6c5c5dbf0c9877b715b1f15828d233780a2f73685e426c9b
MD5 7a28601e5942bf84de87f359049cd449
BLAKE2b-256 79d88768f2b38877006ce6d9c110bc6e1a6d9abf73e6fe6602cb0dfe0c70d3c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: stpstone-2.0.16-py3-none-any.whl
  • Upload date:
  • Size: 457.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.8 Linux/6.11.0-1015-azure

File hashes

Hashes for stpstone-2.0.16-py3-none-any.whl
Algorithm Hash digest
SHA256 ae708dc26e3c759b4f277a659a2117ac90601f67c2e6da18e8864af4d45ef4be
MD5 9fb8e310d64ffbccc21b6585b7ece752
BLAKE2b-256 ef05856d5beb93ce65e4e8a9fbe95392845765304f0756bc352b3730bfd800f9

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