Metadata-Version: 2.4
Name: jgtcore
Version: 0.2.2
Summary: Comprehensive core library for JGT applications - migrated from jgtutils with full compatibility
Author-email: Guillaume Isabelle <jgi@jgwill.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/jgwill/jgtcore
Project-URL: Bug Tracker, https://github.com/jgwill/jgtcore/issues
Project-URL: Documentation, https://github.com/jgwill/jgtcore#readme
Project-URL: Source Code, https://github.com/jgwill/jgtcore
Keywords: configuration,settings,utilities,jgt,trading,fx,cli,logging
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: python-dotenv
Requires-Dist: ruamel.yaml>=0.18.6
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# jgtcore

Core library for JGT utilities - configuration, settings, and utility functions.

This is a pure Python library extracted from `jgtutils` to provide clean programmatic access to JGT configuration and settings without CLI dependencies.

## Installation

```bash
pip install jgtcore
```

## Usage

### Simple Configuration Access
```python
import jgtcore

# Load configuration
config = jgtcore.get_config()
demo_config = jgtcore.get_config(demo=True)

# Get specific config values
user_id = jgtcore.get_config_value('user_id')
quotes_count = jgtcore.get_config_value('quotes_count', 1000)
```

### Settings Management
```python
import jgtcore

# Get all settings
settings = jgtcore.get_settings()

# Get specific setting with default
instrument = jgtcore.get_setting('instrument', 'EUR/USD')
timeframes = jgtcore.get_setting('_timeframes', 'D1')
```

### Environment Setup
```python
import jgtcore

# One-call environment setup
config, settings = jgtcore.setup_environment(demo=True)

# Check demo mode
if jgtcore.is_demo_mode():
    print("Running in demo mode")
```

### Advanced Usage
```python
from jgtcore import readconfig, load_settings

# Load with specific options
config = readconfig(demo=True, export_env=True)
settings = load_settings(custom_path="/path/to/settings.json")
```

## Configuration Files

- **config.json**: Trading credentials and connection settings
- **settings.json**: Application settings and preferences

See `examples/` directory for sample configuration files.

## File Locations

### config.json lookup order:
1. Current directory: `config.json`
2. User home: `~/.jgt/config.json`
3. System: `/etc/jgt/config.json`
4. Environment variables: `JGT_CONFIG`, `JGT_CONFIG_PATH`

### settings.json lookup order:
1. System: `/etc/jgt/settings.json`
2. User home: `~/.jgt/settings.json`
3. Current directory: `.jgt/settings.json`
4. YAML variants: `jgt.yml`, `_config.yml`
5. Environment variables: `JGT_SETTINGS`

## License

MIT License
