À propos du projet

FinanceDatabase est un package Python open source qui fournit une vaste base de données de référence organisée d'instruments financiers. Il couvre plus de 300 000 symboles répartis entre les actions (environ 112 690 dans 11 secteurs, 80 industries, 117 pays et 84 bourses), les ETF (environ 36 481 dans 313 familles et 44 catégories), les fonds (environ 57 853 dans 1 540 familles), les indices (environ 91 181), les devises (environ 2 556), les cryptomonnaies (environ 3 367) et les marchés monétaires (environ 1 367). Le projet n'est explicitement pas une source de données de marché ou de données fondamentales. Il se concentre plutôt sur la catégorisation des produits et les métadonnées : pour chaque symbole, il stocke le ticker, le nom, la devise, le secteur, le groupe d'industrie, l'industrie, la bourse, le marché, le pays, l'État, la ville, le code postal, le site web, la tranche de capitalisation boursière, ainsi que les identifiants ISIN, CUSIP et FIGI. Cela le rend utile pour découvrir quels produits existent dans un pays, un secteur ou une industrie donnés, et pour enrichir d'autres flux de travail sur les données financières (l'auteur l'associe au package distinct FinanceToolkit pour les données réelles de prix et de fondamentaux). L'installation se fait avec une seule commande `pip install financedatabase -U`, après quoi le package est importé avec `import financedatabase as fd`. Chaque classe d'actifs est exposée sous forme de classe (par exemple `fd.Equities()`), et une fois instanciée, elle peut être interrogée avec `select(...)` à l'aide de filtres par mot-clé tels que `country`, `sector`, `industry`, `exchange`, `market`, `currency`, `market_cap` et `only_primary_listing`. Les filtres acceptent soit une valeur unique, soit une liste de valeurs, auquel cas toute correspondance est renvoyée. Un assistant `show_options(...)` liste les valeurs distinctes disponibles par colonne, éventuellement restreintes par d'autres filtres, ce qui permet aux utilisateurs d'explorer la taxonomie sans charger l'intégralité des fichiers de données. Comme une même entreprise peut être cotée sur plusieurs bourses, les résultats peuvent contenir des entreprises en double ; l'indicateur `only_primary_listing` ou un filtre explicite `exchange`/`market` permet de restreindre cela. Les données sous-jacentes sont stockées sous forme de fichiers CSV, ce que le projet présente comme un choix de conception délibéré : les contributeurs sans expérience en programmation peuvent modifier directement les fichiers pour ajouter, modifier ou supprimer des tickers, et le README inclut un appel aux contributions de la communauté via un guide CONTRIBUTING.md. Le package est distribué sur PyPI, prend en charge plusieurs versions de Python et est maintenu par Jeroen Bouma. Il se positionne comme une alternative gratuite et communautaire aux fournisseurs commerciaux de données de référence, pour quiconque souhaite une vue d'ensemble large et filtrable de l'univers mondial des produits financiers.