Create a package skeleton similar to the cashctrl_api package, but focused on the implementation of the CashCtrlLedger class. The package will include standard project documentation, a module named ledger.py, unit tests, and necessary setup for development and continuous integration.
Tasks
1. Set Up Basic Package Structure
Create the following files structure with appropriate documentation files and initial code:
Add credentials for your CashCtrl test account as GitHub secrets (see cashctrl_api repo).
test_dummy.py should include a basic unit test to instantiate the class and check API connectivity.
Validate GitHub Actions by committing a purposefully failing test, observing the failure, then fixing the test and confirming the workflow succeeds.
4. Submit Pull Request
Assign a pull request for review to @lasuk.
Include a review of the package skeleton by ChatGPT as a comment to the pull request. Possible prompt:
> Review this skeleton of a Python package, focus on implementing community standards and best practices. Compare to other open source projects. [upload files]
> Provide as downloadable markdown file for use in a GitHub pull request.
Additional Details
Instead of duplicating the CONTRIBUTING.md from cashctrl_api, link to it directly in the README.md:
When sharing ChatGPT output, I propose to include the prompt in an expandable html 'details' section at the top to enhance group learning. Example:
<details> <summary>Click for ChatGPT prompt</summary>
> Review this skeleton of a Python package, focus on implementing community standards and best practices. Compare to other open source projects. [upload files]
> Provide as downloadable markdown file for use in a GitHub pull request.
</details>
Objective
Create a package skeleton similar to the
cashctrl_api
package, but focused on the implementation of theCashCtrlLedger
class. The package will include standard project documentation, a module named ledger.py, unit tests, and necessary setup for development and continuous integration.Tasks
1. Set Up Basic Package Structure
Create the following files structure with appropriate documentation files and initial code:
README.md
with initial project information.2. Implement
CashCtrlLedger
Classledger.py
, create a skeletonCashCtrlLedger
class derived frompyledger.LedgerEngine
.api_client
property that can be optionally initialized:3. Testing
test_dummy.py
should include a basic unit test to instantiate the class and check API connectivity.4. Submit Pull Request
Additional Details
CONTRIBUTING.md
fromcashctrl_api
, link to it directly in theREADME.md
:setup.py
with explicit links to the respective GitHub repositories where necessary:When sharing ChatGPT output, I propose to include the prompt in an expandable html 'details' section at the top to enhance group learning. Example: