wealthbox-cli 1.0.0__tar.gz → 1.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/CONTRIBUTING.md +19 -4
  2. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/PKG-INFO +28 -10
  3. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/README.md +27 -9
  4. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/pyproject.toml +1 -1
  5. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/.env.example +0 -0
  6. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/.github/workflows/ci.yml +0 -0
  7. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/.gitignore +0 -0
  8. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/LICENSE +0 -0
  9. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/SECURITY.md +0 -0
  10. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/docs/cli-reference.md +0 -0
  11. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/__init__.py +0 -0
  12. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/__init__.py +0 -0
  13. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/_config.py +0 -0
  14. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/_util.py +0 -0
  15. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/activity.py +0 -0
  16. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/categories.py +0 -0
  17. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/comments.py +0 -0
  18. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/config.py +0 -0
  19. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/contacts.py +0 -0
  20. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/events.py +0 -0
  21. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/households.py +0 -0
  22. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/main.py +0 -0
  23. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/me.py +0 -0
  24. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/notes.py +0 -0
  25. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/opportunities.py +0 -0
  26. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/projects.py +0 -0
  27. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/tasks.py +0 -0
  28. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/users.py +0 -0
  29. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/cli/workflows.py +0 -0
  30. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/__init__.py +0 -0
  31. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/activity.py +0 -0
  32. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/base.py +0 -0
  33. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/categories.py +0 -0
  34. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/comments.py +0 -0
  35. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/contacts.py +0 -0
  36. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/events.py +0 -0
  37. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/households.py +0 -0
  38. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/me.py +0 -0
  39. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/notes.py +0 -0
  40. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/opportunities.py +0 -0
  41. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/projects.py +0 -0
  42. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/tasks.py +0 -0
  43. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/users.py +0 -0
  44. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/client/workflows.py +0 -0
  45. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/models/__init__.py +0 -0
  46. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/models/activity.py +0 -0
  47. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/models/comments.py +0 -0
  48. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/models/common.py +0 -0
  49. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/models/contacts.py +0 -0
  50. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/models/custom_fields.py +0 -0
  51. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/models/enums.py +0 -0
  52. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/models/events.py +0 -0
  53. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/models/households.py +0 -0
  54. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/models/notes.py +0 -0
  55. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/models/opportunities.py +0 -0
  56. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/models/projects.py +0 -0
  57. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/models/tasks.py +0 -0
  58. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/models/workflows.py +0 -0
  59. {wealthbox_cli-1.0.0 → wealthbox_cli-1.0.1}/src/wealthbox_tools/py.typed +0 -0
@@ -15,7 +15,13 @@ source .venv/bin/activate # macOS/Linux
15
15
  pip install -e ".[dev]"
16
16
  ```
17
17
 
18
- Copy `.env.example` to `.env` and add your Wealthbox API token.
18
+ Configure your Wealthbox API token:
19
+
20
+ ```bash
21
+ wbox config set-token
22
+ ```
23
+
24
+ Or copy `.env.example` to `.env` and add your token there.
19
25
 
20
26
  ## Running Tests
21
27
 
@@ -32,8 +38,8 @@ ruff check src/
32
38
  mypy src/
33
39
  ```
34
40
 
35
- - **ruff** for linting (E, F, I rules; 100-char line length)
36
- - **mypy** in strict mode
41
+ - **ruff** for linting (E, F, I rules; 120-char line length)
42
+ - **mypy** in strict mode (has known `untyped-decorator` warnings from Typer — not currently enforced in CI)
37
43
 
38
44
  ## Project Architecture
39
45
 
@@ -55,11 +61,20 @@ Three layers under `src/wealthbox_tools/`:
55
61
  6. If the resource has category types, add them via `make_category_command()` in the resource's `categories` sub-app
56
62
  7. Add tests in `tests/test_<resource>_create.py` and `tests/test_<resource>_update.py`
57
63
 
64
+ ## CI
65
+
66
+ Pull requests and pushes to `main` run GitHub Actions CI:
67
+
68
+ - **Lint:** `ruff check src/ tests/`
69
+ - **Test:** `pytest` across Python 3.11, 3.12, 3.13
70
+
71
+ Both must pass before merging.
72
+
58
73
  ## Pull Requests
59
74
 
60
75
  - Keep PRs focused — one feature or fix per PR
61
76
  - All tests must pass (`pytest`)
62
- - No ruff or mypy errors
77
+ - No ruff errors
63
78
  - Update the CLI reference docs if commands change
64
79
 
65
80
  ## Reporting Issues
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wealthbox-cli
3
- Version: 1.0.0
3
+ Version: 1.0.1
4
4
  Summary: CLI and client library for the Wealthbox CRM API
5
5
  Project-URL: Homepage, https://github.com/massive-value/wealthbox-cli
6
6
  Project-URL: Issues, https://github.com/massive-value/wealthbox-cli/issues
@@ -92,26 +92,44 @@ pip install -e ".[dev]"
92
92
 
93
93
  ## Configuration
94
94
 
95
- Copy `.env.example` to `.env` and fill in your token:
95
+ ### Getting your API token
96
96
 
97
- ```
98
- WEALTHBOX_TOKEN=your_api_token_here
97
+ 1. Log in to [Wealthbox](https://app.crmworkspace.com)
98
+ 2. Click the three dots menu (**...**) in the top right
99
+ 3. Go to **Settings** -> **API Access**
100
+ 4. Click **Create Access Token**
101
+
102
+ ### Storing your token
103
+
104
+ ``` bash
105
+ wbox config set-token
99
106
  ```
100
107
 
101
- Or set it as an environment variable:
108
+ This prompts for your Wealthbox API token (input is masked) and stores it in
109
+ `~/.config/wbox/config.json` (Linux/macOS) or `%APPDATA%\wbox\config.json` (Windows).
102
110
 
103
- **macOS/Linux**
111
+ Other configuration commands:
104
112
 
105
113
  ``` bash
106
- export WEALTHBOX_TOKEN="your_api_token_here"
114
+ wbox config show # display stored config (token masked)
115
+ wbox config clear # remove stored config
107
116
  ```
108
117
 
109
- **Windows (PowerShell)**
118
+ **Alternative methods** (for CI, scripting, or containers):
110
119
 
111
- ``` powershell
112
- setx WEALTHBOX_TOKEN "your_api_token_here"
120
+ ``` bash
121
+ # Environment variable
122
+ export WEALTHBOX_TOKEN="your_api_token_here"
123
+
124
+ # .env file in working directory
125
+ echo 'WEALTHBOX_TOKEN=your_api_token_here' > .env
126
+
127
+ # Per-command flag
128
+ wbox contacts list --token your_api_token_here
113
129
  ```
114
130
 
131
+ Token is resolved in this order: `--token` flag > `WEALTHBOX_TOKEN` env var > config file > `.env` file.
132
+
115
133
  ------------------------------------------------------------------------
116
134
 
117
135
  ## Usage
@@ -61,26 +61,44 @@ pip install -e ".[dev]"
61
61
 
62
62
  ## Configuration
63
63
 
64
- Copy `.env.example` to `.env` and fill in your token:
64
+ ### Getting your API token
65
65
 
66
- ```
67
- WEALTHBOX_TOKEN=your_api_token_here
66
+ 1. Log in to [Wealthbox](https://app.crmworkspace.com)
67
+ 2. Click the three dots menu (**...**) in the top right
68
+ 3. Go to **Settings** -> **API Access**
69
+ 4. Click **Create Access Token**
70
+
71
+ ### Storing your token
72
+
73
+ ``` bash
74
+ wbox config set-token
68
75
  ```
69
76
 
70
- Or set it as an environment variable:
77
+ This prompts for your Wealthbox API token (input is masked) and stores it in
78
+ `~/.config/wbox/config.json` (Linux/macOS) or `%APPDATA%\wbox\config.json` (Windows).
71
79
 
72
- **macOS/Linux**
80
+ Other configuration commands:
73
81
 
74
82
  ``` bash
75
- export WEALTHBOX_TOKEN="your_api_token_here"
83
+ wbox config show # display stored config (token masked)
84
+ wbox config clear # remove stored config
76
85
  ```
77
86
 
78
- **Windows (PowerShell)**
87
+ **Alternative methods** (for CI, scripting, or containers):
79
88
 
80
- ``` powershell
81
- setx WEALTHBOX_TOKEN "your_api_token_here"
89
+ ``` bash
90
+ # Environment variable
91
+ export WEALTHBOX_TOKEN="your_api_token_here"
92
+
93
+ # .env file in working directory
94
+ echo 'WEALTHBOX_TOKEN=your_api_token_here' > .env
95
+
96
+ # Per-command flag
97
+ wbox contacts list --token your_api_token_here
82
98
  ```
83
99
 
100
+ Token is resolved in this order: `--token` flag > `WEALTHBOX_TOKEN` env var > config file > `.env` file.
101
+
84
102
  ------------------------------------------------------------------------
85
103
 
86
104
  ## Usage
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "wealthbox-cli"
7
- version = "1.0.0"
7
+ version = "1.0.1"
8
8
  description = "CLI and client library for the Wealthbox CRM API"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
File without changes
File without changes
File without changes