Skip to main content

Package Python pour accéder aux données de la Bourse de Casablanca

Project description

Casabourse

Bibliothèque Python pour accéder aux données de la Bourse de Casablanca (Casablanca Stock Exchange).

Cette petite API fournit des fonctions pour récupérer les cotations en direct, les historiques, les indices, les volumes et des métriques de marché prêtes à l'emploi. Les exemples d'utilisation se trouvent dans le répertoire examples/ (script d'exemple et notebook).

Installation

Préféré : installer en mode développement depuis le dépôt local :

pip install -e .

Ou installer les dépendances listées dans requirements.txt :

pip install -r requirements.txt

Utilisation rapide

Exemples simples (extraits de examples/example_usage.py et examples/debug_live.py) :

import casabourse as cb

# récupère les données de marché en direct (DataFrame pandas)
df_live = cb.get_live_market_data()
print(df_live.head())

# recherche d'identifiant de symbole à partir d'un ticker
sid = cb.get_symbol_id_from_ticker_auto('AFM')
print('symbol id AFM:', sid)

# historique d'un ticker sur une période
hist = cb.get_historical_data_auto('IAM', '2024-01-01', '2024-12-31')
print(hist.head())

# top gainers / losers
gainers = cb.get_top_gainers(5)
losers = cb.get_top_losers(5)

# exporter les données de marché (ex: CSV)
fname = cb.export_market_data(format='csv')
print('Exporté vers :', fname)

Pour des tests plus poussés et du debugging, voir examples/debug_live.py qui montre comment inspecter les fonctions et appeler plusieurs points d'entrée de l'API.

Contenu principal

Le package expose plusieurs fonctions au niveau racine (importables via import casabourse as cb) :

  • Gestion du build id et utilitaires : get_build_id, get_build_id_cached, etc.
  • Marché & cotations : get_live_market_data, get_market_data, get_top_gainers, get_most_active, get_sector_performance, get_market_summary, export_market_data, ...
  • Instruments : get_symbol_id_from_ticker, get_historical_data, get_technical_indicators, ...
  • Volumes : get_volume_overview, get_volume_data
  • Capitalisation : get_capitalization_data, get_capitalization_overview
  • Indices : get_all_indices_overview, get_index_composition, get_index_quotation, etc.

(Voir casabourse/__init__.py pour la liste complète des symboles exportés.)

Exemples & Notebook

Les exemples disponibles :

  • examples/example_usage.py : exemples d'appels courants et d'export.
  • examples/debug_live.py : script d'inspection et debug (niveau logging détaillé possible).
  • examples/example_notebook.ipynb : notebook Jupyter d'illustration.

Exemple : tracé historique

Vous pouvez utiliser le script d'exemple examples/historical_plot.py pour récupérer l'historique d'un ticker et tracer le prix de clôture. Le script sauvegarde un PNG dans le répertoire courant.

Exemple d'utilisation (PowerShell) :

pip install -e .
pip install pandas matplotlib
python .\examples\historical_plot.py IAM --start 2024-01-01 --end 2024-12-31

Le script tente d'identifier automatiquement la colonne « prix de clôture » dans le DataFrame retourné et tombe sur la première colonne numérique si aucune colonne explicite n'est trouvée.

Si vous préférez un notebook interactif, copiez le code du script dans une cellule et utilisez %matplotlib inline.

Tests

Les tests unitaires simples se trouvent dans tests/. Pour lancer la suite de tests :

pip install -r requirements.txt
pip install pytest
pytest -q

Licence

Ce projet inclut un fichier LICENSE à la racine. Consultez-le pour les conditions d'utilisation.

Contributions

Les issues et les pull requests sont bienvenues. Pour développer localement, installez en mode editable (pip install -e .) et exécutez les scripts d'exemple ou le notebook.


Si vous voulez que j'ajoute des exemples supplémentaires dans le README (par ex. un exemple complet de récupération historique + graphique), dites-moi lequel et je l'ajoute.

Documentation (HTML & PDF)

La documentation complète est fournie dans le répertoire docs/. Elle est générée avec Sphinx.

Dépendances recommandées pour construire la doc :

pip install -r docs/requirements-docs.txt
# pour générer le PDF via LaTeX, installez également une distribution TeX (ex: TeX Live, MiKTeX)

Pour construire la documentation (HTML + tentative de PDF) :

python .\scripts\build_docs.py

Le HTML sera dans docs/_build/html. Si pdflatex est disponible, un PDF sera généré dans docs/_build/latex.

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

casabourse-0.1.0.tar.gz (33.1 kB view details)

Uploaded Source

Built Distribution

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

casabourse-0.1.0-py3-none-any.whl (33.3 kB view details)

Uploaded Python 3

File details

Details for the file casabourse-0.1.0.tar.gz.

File metadata

  • Download URL: casabourse-0.1.0.tar.gz
  • Upload date:
  • Size: 33.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for casabourse-0.1.0.tar.gz
Algorithm Hash digest
SHA256 da40c9a46312c4a30f82d812a3c9823a618c2cd20da403e264d3148f7d96c199
MD5 f849e4b0f42f8e3553fc9afe901a38a4
BLAKE2b-256 0b7e6007285236f266f04ec6ae0dc900f8621631f2bff046f61dcdefbb2813f7

See more details on using hashes here.

File details

Details for the file casabourse-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: casabourse-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 33.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for casabourse-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1c3bb65ce5cf1f039a2e1df1425467dee20238578011cf76418a63fac790ecd1
MD5 000f84bd8de140ff6033ae329c136b0b
BLAKE2b-256 84b6629cbb8812f00593ab9ae5eb86d8ae973fea2638252767e7b082269eeb59

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