Skip to content

Commit

Permalink
Merge branch 'develop' into hotfix/update-api-endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
deeleeramone committed Jan 3, 2024
2 parents db79720 + c43100d commit 8b7bf30
Show file tree
Hide file tree
Showing 208 changed files with 7,784 additions and 2,395 deletions.
29 changes: 24 additions & 5 deletions .github/workflows/linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,27 @@ jobs:
steps:
- name: Checkout Code
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # actions/checkout v3.0.2
with:
ref: ${{ github.head_ref }}
fetch-depth: 20

- name: Fetch base branch
run: git fetch --no-tags --depth=20 origin ${{ github.base_ref }}

- name: Setup Python 3.9
uses: actions/setup-python@v4
with:
python-version: "3.9"
architecture: x64

- name: Get changed files in openbb_terminal for PR
- name: Get changed files in openbb_terminal and openbb_platform for PR
if: github.event_name == 'pull_request'
run: |
echo "files=$(git diff --name-only origin/${{ github.base_ref }}...${{ github.head_ref }} | grep 'openbb_terminal/.*\.py$' | xargs)" >> $GITHUB_ENV
# "Checking PR diff"
echo "terminal_files=$(git diff --name-only origin/${{ github.base_ref }}...${{ github.head_ref }} | grep 'openbb_terminal/.*\.py$' | xargs)" >> $GITHUB_ENV
echo $terminal_files
echo "platform_files=$(git diff --name-only origin/${{ github.base_ref }}...${{ github.head_ref }} | grep 'openbb_platform/.*\.py$' | grep -v 'openbb_platform/openbb/package' | grep -v 'integration' | grep -v 'tests' | xargs)" >> $GITHUB_ENV
echo $platform_files
- uses: actions/cache@v3
with:
Expand All @@ -56,12 +66,21 @@ jobs:
- run: codespell --ignore-words=.codespell.ignore --skip="$(tr '\n' ',' < .codespell.skip | sed 's/,$//')" --quiet-level=2
- run: ruff .
- run: |
if [ -n "${{ env.files }}" ]; then
mypy --ignore-missing-imports ${{ env.files }}
# Run linters for openbb_terminal
if [ -n "${{ env.terminal_files }}" ]; then
mypy --ignore-missing-imports ${{ env.terminal_files }}
pylint terminal.py ${{ env.terminal_files }}
else
echo "No Python files changed in openbb_terminal"
fi
- run: pylint terminal.py openbb_terminal tests
- run: |
# Run linters for openbb_platform
if [ -n "${{ env.platform_files }}" ]; then
# Add mypy to this part of the linting workflow once we're ready
pylint ${{ env.platform_files }}
else
echo "No Python files changed in openbb_platform"
fi
markdown-link-check:
name: Markdown Linting
Expand Down
10 changes: 7 additions & 3 deletions .secrets.baseline
Original file line number Diff line number Diff line change
Expand Up @@ -115,17 +115,21 @@
{
"path": "detect_secrets.filters.regex.should_exclude_line",
"pattern": [
".*example.*"
".*example.*",
".*_api_key.*"
]
},
{
"path": "detect_secrets.filters.regex.should_exclude_secret",
"pattern": [
"example",
"REPLACE_ME"
"REPLACE_ME",
"my_email",
"my_password",
"my_pat"
]
}
],
"results": {},
"generated_at": "2022-11-16T18:07:51Z"
"generated_at": "2023-12-14T18:07:51Z"
}
Original file line number Diff line number Diff line change
@@ -1,27 +1,25 @@
"""Balance Sheet Standard Model."""

import warnings
from datetime import date as dateType
from typing import Optional

from datetime import (
date as dateType,
datetime,
)
from typing import List, Literal, Optional, Set, Union

from pydantic import Field, NonNegativeInt, StrictFloat, field_validator
from pydantic import Field, NonNegativeInt, field_validator

from openbb_core.provider.abstract.data import Data
from openbb_core.provider.abstract.query_params import QueryParams
from openbb_core.provider.utils.descriptions import (
DATA_DESCRIPTIONS,
QUERY_DESCRIPTIONS,
)

_warn = warnings.warn


class BalanceSheetQueryParams(QueryParams):
"""Balance Sheet Query."""

symbol: str = Field(description=QUERY_DESCRIPTIONS.get("symbol", ""))
period: Optional[Literal["annual", "quarter"]] = Field(
period: str = Field(
default="annual",
description=QUERY_DESCRIPTIONS.get("period", ""),
)
Expand All @@ -31,159 +29,22 @@ class BalanceSheetQueryParams(QueryParams):

@field_validator("symbol", mode="before", check_fields=False)
@classmethod
def upper_symbol(cls, v: Union[str, List[str], Set[str]]):
def upper_symbol(cls, v: str):
"""Convert symbol to uppercase."""
if "," in v:
_warn(
f"{QUERY_DESCRIPTIONS.get('symbol_list_warning', '')} {v.split(',')[0].upper()}"
)
return v.split(",")[0].upper() if "," in v else v.upper()


class BalanceSheetData(Data):
"""Balance Sheet Data."""

symbol: Optional[str] = Field(
default=None, description=DATA_DESCRIPTIONS.get("symbol", "")
)
date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
cik: Optional[str] = Field(
default=None,
description=DATA_DESCRIPTIONS.get("cik", ""),
)
currency: Optional[str] = Field(default=None, description="Reporting currency.")
filling_date: Optional[dateType] = Field(default=None, description="Filling date.")
accepted_date: Optional[datetime] = Field(
default=None, description="Accepted date."
)
period: Optional[str] = Field(
default=None, description="Reporting period of the statement."
)

cash_and_cash_equivalents: Optional[StrictFloat] = Field(
default=None, description="Cash and cash equivalents"
)
short_term_investments: Optional[StrictFloat] = Field(
default=None, description="Short-term investments"
)
long_term_investments: Optional[StrictFloat] = Field(
default=None, description="Long-term investments"
)

inventory: Optional[StrictFloat] = Field(default=None, description="Inventory")
net_receivables: Optional[StrictFloat] = Field(
default=None, description="Receivables, net"
)

marketable_securities: Optional[StrictFloat] = Field(
default=None, description="Marketable securities"
)
property_plant_equipment_net: Optional[StrictFloat] = Field(
default=None, description="Property, plant and equipment, net"
)
goodwill: Optional[StrictFloat] = Field(default=None, description="Goodwill")

assets: Optional[StrictFloat] = Field(default=None, description="Total assets")
current_assets: Optional[StrictFloat] = Field(
default=None, description="Total current assets"
)
other_current_assets: Optional[StrictFloat] = Field(
default=None, description="Other current assets"
)
intangible_assets: Optional[StrictFloat] = Field(
default=None, description="Intangible assets"
)
tax_assets: Optional[StrictFloat] = Field(
default=None, description="Accrued income taxes"
)
non_current_assets: Optional[StrictFloat] = Field(
default=None, description="Total non-current assets"
)
other_non_current_assets: Optional[StrictFloat] = Field(
default=None, description="Other non-current assets"
)

account_payables: Optional[StrictFloat] = Field(
default=None, description="Accounts payable"
)
tax_payables: Optional[StrictFloat] = Field(
default=None, description="Accrued income taxes"
)
deferred_revenue: Optional[StrictFloat] = Field(
default=None, description="Accrued income taxes, other deferred revenue"
)
other_assets: Optional[StrictFloat] = Field(
default=None, description="Other assets"
)
total_assets: Optional[StrictFloat] = Field(
default=None, description="Total assets"
)

long_term_debt: Optional[StrictFloat] = Field(
default=None,
description="Long-term debt, Operating lease obligations, Long-term finance lease obligations",
)
short_term_debt: Optional[StrictFloat] = Field(
default=None,
description="Short-term borrowings, Long-term debt due within one year, "
"Operating lease obligations due within one year, "
"Finance lease obligations due within one year",
)

liabilities: Optional[StrictFloat] = Field(
default=None, description="Total liabilities"
)
other_current_liabilities: Optional[StrictFloat] = Field(
default=None, description="Other current liabilities"
)
current_liabilities: Optional[StrictFloat] = Field(
default=None, description="Total current liabilities"
)
total_liabilities_and_total_equity: Optional[StrictFloat] = Field(
default=None, description="Total liabilities and total equity"
)
other_non_current_liabilities: Optional[StrictFloat] = Field(
default=None, description="Other non-current liabilities"
)
non_current_liabilities: Optional[StrictFloat] = Field(
default=None, description="Total non-current liabilities"
)
total_liabilities_and_stockholders_equity: Optional[StrictFloat] = Field(
default=None, description="Total liabilities and stockholders' equity"
)
other_stockholder_equity: Optional[StrictFloat] = Field(
default=None, description="Other stockholders equity"
)
total_stockholders_equity: Optional[StrictFloat] = Field(
default=None, description="Total stockholders' equity"
period_ending: dateType = Field(description="The end date of the reporting period.")
fiscal_period: Optional[str] = Field(
description="The fiscal period of the report.", default=None
)
other_liabilities: Optional[StrictFloat] = Field(
default=None, description="Other liabilities"
fiscal_year: Optional[int] = Field(
description="The fiscal year of the fiscal period.", default=None
)
total_liabilities: Optional[StrictFloat] = Field(
default=None, description="Total liabilities"
)

common_stock: Optional[StrictFloat] = Field(
default=None, description="Common stock"
)
preferred_stock: Optional[StrictFloat] = Field(
default=None, description="Preferred stock"
)

accumulated_other_comprehensive_income_loss: Optional[StrictFloat] = Field(
default=None, description="Accumulated other comprehensive income (loss)"
)
retained_earnings: Optional[StrictFloat] = Field(
default=None, description="Retained earnings"
)
minority_interest: Optional[StrictFloat] = Field(
default=None, description="Minority interest"
)
total_equity: Optional[StrictFloat] = Field(
default=None, description="Total equity"
)

@field_validator("symbol", mode="before", check_fields=False)
@classmethod
def upper_symbol(cls, v: Union[str, List[str], Set[str]]):
"""Convert symbol to uppercase."""
if isinstance(v, str):
return v.upper()
return ",".join([symbol.upper() for symbol in list(v)]) if v else None
Loading

0 comments on commit 8b7bf30

Please sign in to comment.