File size: 3,177 Bytes
10d71ba
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "fred-ml"
version = "1.0.0"
description = "Enterprise-grade economic data analysis platform using FRED API"
readme = "README.md"
license = {text = "MIT"}
authors = [
    {name = "Edwin Salguero", email = "[email protected]"}
]
maintainers = [
    {name = "Edwin Salguero", email = "[email protected]"}
]
keywords = ["economics", "data-analysis", "machine-learning", "fred", "api"]
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Intended Audience :: Financial and Insurance Industry",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Topic :: Scientific/Engineering :: Information Analysis",
    "Topic :: Software Development :: Libraries :: Python Modules",
]
requires-python = ">=3.9"
dependencies = [
    "fredapi==0.4.2",
    "pandas==2.1.4",
    "numpy==1.24.3",
    "matplotlib==3.7.2",
    "seaborn==0.12.2",
    "jupyter==1.0.0",
    "python-dotenv==1.0.0",
    "requests==2.31.0",
    "PyYAML==6.0.2",
    "APScheduler==3.10.4",
    "scikit-learn==1.3.0",
    "scipy==1.11.1",
    "statsmodels==0.14.0",
    "fastapi==0.104.1",
    "uvicorn[standard]==0.24.0",
    "pydantic==1.10.13",
    "redis==5.0.1",
    "psycopg2-binary==2.9.9",
    "sqlalchemy==2.0.23",
    "alembic==1.13.0",
    "prometheus-client==0.19.0",
    "structlog==23.2.0",
]

[project.optional-dependencies]
dev = [
    "pytest==7.4.0",
    "pytest-asyncio==0.21.1",
    "httpx==0.25.2",
    "black==23.11.0",
    "flake8==6.1.0",
    "mypy==1.7.1",
    "pre-commit==3.6.0",
    "isort==5.12.0",
]

[project.urls]
Homepage = "https://github.com/EAName/FREDML"
Documentation = "https://github.com/EAName/FREDML#readme"
Repository = "https://github.com/EAName/FREDML.git"
"Bug Tracker" = "https://github.com/EAName/FREDML/issues"

[project.scripts]
fred-ml = "src.main:main"

[tool.black]
line-length = 88
target-version = ['py39']
include = '\.pyi?$'
extend-exclude = '''
/(
  # directories
  \.eggs
  | \.git
  | \.hg
  | \.mypy_cache
  | \.tox
  | \.venv
  | build
  | dist
)/
'''

[tool.isort]
profile = "black"
multi_line_output = 3
line_length = 88
known_first_party = ["src"]

[tool.mypy]
python_version = "3.9"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
disallow_untyped_decorators = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
warn_unreachable = true
strict_equality = true

[tool.pytest.ini_options]
minversion = "6.0"
addopts = "-ra -q --strict-markers --strict-config"
testpaths = ["tests"]
python_files = ["test_*.py", "*_test.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
markers = [
    "slow: marks tests as slow (deselect with '-m \"not slow\"')",
    "integration: marks tests as integration tests",
    "unit: marks tests as unit tests",
]