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 Formatting: isort Test Coverage Snyk Vulnerabilities Snyk License License PyPI Downloads Open Issues Contributions Welcome

stpstone (short for stepping stone) is a Python package 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
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ bin/                   # 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
โ”œโ”€โ”€ ๐Ÿ”ง extensions.txt  # Development dependencies
โ””โ”€โ”€ ๐Ÿ’ป requirements-prd.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-3.0.0.tar.gz (470.3 kB view details)

Uploaded Source

Built Distribution

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

stpstone-3.0.0-py3-none-any.whl (883.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: stpstone-3.0.0.tar.gz
  • Upload date:
  • Size: 470.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.8 Linux/6.17.0-1010-azure

File hashes

Hashes for stpstone-3.0.0.tar.gz
Algorithm Hash digest
SHA256 28f244e83bb2593ed2816e35d16ec87b64cd591bdce6e4a1e74c6c5acd306c91
MD5 4ea4ac659303affa616cc8aeb19bd903
BLAKE2b-256 9a483e53294bdb8905173e48a142e52bd9f92eac36dc17f13842ec06d85338b9

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for stpstone-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4be8f94eae3b1ffc54c71c91e7672ee23b6b7fe303876844b0ee366b63359e22
MD5 8a44beb60875cdd2d0ed25ed7739b8a2
BLAKE2b-256 15b83e81f4420dafe52577a887372726382a83c45a48b9658411aeb323932a0e

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