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.1.2.tar.gz (497.4 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.1.2-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for stpstone-3.1.2.tar.gz
Algorithm Hash digest
SHA256 d9d941a13f9bc7be65da2c61aac88e5f59c65facd5620576120d64cf8161b346
MD5 b300c719eba5017c9503c899a1e379ae
BLAKE2b-256 2fc2ac21011d34b773b4cce68df6730cecc2e581d0dc4fffe6abc87f1fbbd153

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for stpstone-3.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b7cf3cb0208dfe3ea62ee459e1ce4ac492146ce4c81179dc5ba1d16d4bc7ccb6
MD5 aa1ce8590eac9ae1871dafb7cee75b1f
BLAKE2b-256 0fd3e267eb2b7436a85de122e40b799597a9ee67fc401472c150f76668c95357

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