{"id":25619178,"url":"https://github.com/sebe324/pythoncalculator","last_synced_at":"2025-04-14T00:40:34.709Z","repository":{"id":188237001,"uuid":"678319141","full_name":"sebe324/PythonCalculator","owner":"sebe324","description":"A calculator made in PySimpleGui with C++ bindings","archived":false,"fork":false,"pushed_at":"2025-03-08T18:52:46.000Z","size":787,"stargazers_count":6,"open_issues_count":4,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T14:52:29.354Z","etag":null,"topics":["calculator","contributions-welcome","cpp","good-first-issue","pybind11","pysimplegui","python","rpn-calculator"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sebe324.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-14T09:20:53.000Z","updated_at":"2025-03-08T18:52:52.000Z","dependencies_parsed_at":"2023-08-14T12:23:25.945Z","dependency_job_id":"f38c57fb-6f33-4d8e-8821-81c963c85b34","html_url":"https://github.com/sebe324/PythonCalculator","commit_stats":null,"previous_names":["sebe324/pythoncalculator"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebe324%2FPythonCalculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebe324%2FPythonCalculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebe324%2FPythonCalculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebe324%2FPythonCalculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sebe324","download_url":"https://codeload.github.com/sebe324/PythonCalculator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248804260,"owners_count":21164124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calculator","contributions-welcome","cpp","good-first-issue","pybind11","pysimplegui","python","rpn-calculator"],"created_at":"2025-02-22T06:16:28.292Z","updated_at":"2025-04-14T00:40:34.680Z","avatar_url":"https://github.com/sebe324.png","language":"Python","readme":"# Python Calculator\nA calculator made in python.\n\nThis application uses the Reverse Polish Notation for calculations.\n\nThe algorithm is written in C++, but the user interface is made in PySimpleGui.\n## Calculator in action\n\n![2023-08-14 16-59-44](https://github.com/sebe324/sebe324/assets/58781463/9d1029f9-e40a-4e5a-810c-461375c3ad34)\n\n## Tests\n![obraz](https://github.com/sebe324/PythonCalculator/assets/58781463/85233672-9c18-4596-a377-9b123538b6a1)\n\n## Contributing\n  - If anyone wants to contribute feel free to do so. Just send a pull request and I will review it.\n  - You can check out the issues or the to-do list at the bottom of this readme.\n## How to build\n\n### 1. Just building the python code\n\n- Install python\n- Install PySimpleGUI\n  ```pip install PySimpleGUI```\n- Install playsound\n```pip install playsound```\n- Make sure that the .pyd file and the .py file are in the same folder\n- Just do this line in the same directory as the files.\n  ```python CalculatorUI.py```\n- It should work.\n\n\n### 2. Building the c++ code and using pybind11\n  #### CMake\n  - Make sure you have cmake and pybind11 installed.\n  - Go to the c++ folder. In the project directory do: ```cd src/c++```\n  - Sometimes CMake can have problems with finding pybind11. To fix this try this:\n    - In console ```pip show pybind11```.\n    - In CMakeLists.txt change [LOCATION] to the location you get from the command.\n    - If your path contains single escape characters ```\\``` make sure to replace them with ```\\\\```\n    - ```cmake .```\n    - ```cmake --build .```\n    - The .pyd file should be located in one of the folders created.\n    - Now you can move the .pyd file to the python src folder and build the rest.\n  #### Visual Studio\n  - This process is quite complicated and I myself had a lot of problems with using pybind.\n  - I'm going to leave this [guide](https://learn.microsoft.com/en-us/visualstudio/python/working-with-c-cpp-python-in-visual-studio?view=vs-2022). It does a\n    much better job explaining this than I could.\n## To do list\n- Write the rpn algorithm in C++ [x]\n- Write tests to make sure things are running smoothly [x]\n- Organize rpn code to be more readable [x]\n- Bind the C++ code to python [x]\n- Create a GUI [x]\n- Add functionality to the GUI [x]\n- Fix all the bugs [ ]\n- Add documentation [ ]\n- Light and dark mode [ ]\n- Window confirming if the user wants to exit the calculator [x]\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebe324%2Fpythoncalculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebe324%2Fpythoncalculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebe324%2Fpythoncalculator/lists"}