| Crates.io | paft-fundamentals |
| lib.rs | paft-fundamentals |
| version | 0.7.1 |
| created_at | 2025-09-15 22:55:31.951174+00 |
| updated_at | 2025-10-31 17:56:11.504497+00 |
| description | Fundamentals data models and helpers for paft. |
| homepage | https://github.com/paft-rs/paft |
| repository | https://github.com/paft-rs/paft |
| max_upload_size | |
| id | 1840666 |
| size | 178,284 |
Fundamentals data models for the paft ecosystem: financial statements, analysis, holders, and ESG.
CompanyProfile, FundProfileIncomeStatementRow, BalanceSheetRow, CashflowRowPrefer the facade crate for most applications:
[dependencies]
paft = "0.7.1"
Advanced (direct dependency, minimal):
[dependencies]
paft-fundamentals = { version = "0.7.1", default-features = false }
Alternate decimal backend:
[dependencies]
paft-fundamentals = { version = "0.7.1", default-features = false, features = ["bigdecimal"] }
With DataFrame integration:
[dependencies]
paft-fundamentals = { version = "0.7.1", default-features = false, features = ["dataframe"] }
bigdecimal: change money backend from rust_decimal to bigdecimal via paft-moneydataframe: Polars integration (ToDataFrame/ToDataFrameVec)use paft_fundamentals::{Earnings, EarningsYear, Profile, CompanyProfile};
let earnings = Earnings { yearly: vec![EarningsYear { year: 2023, ..Default::default() }], ..Default::default() };
assert_eq!(earnings.yearly[0].year, 2023);
let profile = Profile::Company(CompanyProfile {
name: "Example Corp".into(),
sector: None,
industry: None,
website: None,
address: None,
summary: None,
isin: None,
});
if let Profile::Company(c) = profile { assert_eq!(c.name, "Example Corp"); }