abacusSoftware


NameabacusSoftware JSON
Version 1.6.1 PyPI version JSON
download
home_pagehttps://github.com/Tausand-dev/AbacusSoftware
SummaryAbacus Software is a suite of tools built to ensure your experience with Tausand's coincidence counters becomes simplified.
upload_time2024-08-31 14:11:25
maintainerDavid Guzman
docs_urlNone
authorJuan Barbosa
requires_python>=3.6
licenseGPL
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AbacusSoftware
Abacus Software is a suite of tools built to ensure your experience with Tausand's coincidence counters becomes simplified.

Written in Python3, abacusSoftware relies on the following modules:

- pyAbacus
- pyqtgraph
- NumPy
- PyQt5
- pyserial
- qtmodern

## Preview

A quick demo video to preview this software is available at: https://youtu.be/c4QO8p1WeSE

## Installation
`abacusSoftware` can be installed using `pip` as: 
```
pip install abacusSoftware
```

Or from GitHub
```
pip install git+https://github.com/Tausand-dev/abacusSoftware.git
```

## Execute abacusSoftware
On a terminal or command prompt type
```
abacusSoftware
```

### Grant port access on Linux
Most Linux configurations have a dialout group for full and direct access to serial ports. By adding your user account to this group you will have the necessary permissions for Abacus Software to communicate with the serial ports.

1. Open Terminal.
2. Enter the following command, replacing ```<username>``` with the name of your account.
```
sudo usermod -a -G dialout <username>
```
3. Sign in and out for the changes to take effect.


## For developers
### Updating to a new version
Write the changes of the new version in the file LastVersionNotes.md.
Once the version is ready to update, run the script updateversion.py to include the last version notes in the release_history.md file.
### Creating a virtual environment
Run the following code to create a virtual environment called `.venv`
```
python -m venv .venv
```

#### Activate
- On Unix systems:
```
source .venv/bin/activate
```
- On Windows:
```
.venv\Scripts\activate
```

#### Deactivate
```
deactivate
```

### Installing packages
After the virtual environment has been activated, install required packages by using:
```
python -m pip install -r requirements.txt
```

### Freezing code
After activating the virtual environment

#### Windows
Run the following command 
```
pyinstaller --additional-hooks-dir installers/pyinstaller_hooks/ --name AbacusSoftware --onefile --noconsole -i abacusSoftware/GUI/images/abacus_small.ico test.py
```
Two folders will be created: build and dist. Inside `dist` you'll find the `.exe` file. To create an installer, first install Inno Setup from https://jrsoftware.org/isinfo.php#stable. Then, using the File Explorer, go to the folder `installers` and double-click `installer_builder.iss` or open it from Inno Setup if it is already opened. Click on the play icon and then follow the process, which includes the creation of the installer and the installation itself.

The installer will be saved in a folder called `Output`.

### MacOS
Run the following command
```
pyinstaller --additional-hooks-dir installers/pyinstaller_hooks/ --name AbacusSoftware --onefile --noconsole -i abacusSoftware/GUI/images/Abacus_small.png test.py
```
Two folders will be created: build and dist. Inside `dist` you'll find the `.app` file. This file can be run from a console by executing the command
To change the icon of the `.app` file follow the instructions here https://appleinsider.com/articles/21/01/06/how-to-change-app-icons-on-macos

### Linux
Run the following command
```
pyinstaller --additional-hooks-dir installers/pyinstaller_hooks/ --name AbacusSoftware --onefile --noconsole -i abacusSoftware/GUI/images/Abacus_small.png test.py
```
Two folders will be created: build and dist. Inside dist you'll find the executable file. This file can be run from a console by executing the command

```
./AbacusSoftware
```
If it doesn't run, make sure it has execute permissions. In case it doesn't run `chmod +x AbacusSoftware` and then try again. The executable file could be used to create a Desktop entry so it can be lauched as an application (for example in Gnome, an icon could be assigned)

To create an AppImage that can be run from multiple Linux distributions and be launch by double clicking, follow the next steps.
* Create the following folder path: 
	AbacusSoftware.AppDir/usr/bin
* Place the executable inside the bin folder 
* Place the icon Abacus_small.png located at abacusSoftware/GUI/images/Abacus_small.png inside AbacusSoftware.AppDir
* Create a file called AbacusSoftware.desktop inside AbacusSoftware.AppDir
* Edit the `.desktop` file with the following

```
[Desktop Entry]
Name=AbacusSoftware
Exec=AbacusSoftware
Icon=Abacus_small
Type=Application
Categories=Utility;
```

* Give execution permisions to the `.desktop` file: `chmod +x AbacusSoftware.desktop`
* Create a script called `AppRun` with the following contents

```
#!/bin/bash
SELF=$(readlink -f "$0")
HERE=${SELF%/*}
EXEC="${HERE}/usr/bin/AbacusSoftware"
exec "${EXEC}"
```

* Give execution permisions to the `AppRun` file: `chmod +x AppRun`. After this step, the app should run after doing `./AppRun` on a Terminal.
* For 64-bit architecture, download appimagetool-x86_64.AppImage from https://github.com/AppImage/AppImageKit/releases/ and give execution permisions to it. 
* Place appimagetool outside AbacusSoftware.AppDir and run
```
ARCH=x86_64 ./appimagetool-x86_64.AppImage AbacusSoftware.AppDir
```
* The file `AbacusSoftware-x86_64.AppImage` will be created. This file can be opened by double clicking it.


### Generating images and icons
In linux, `cd` into `abacusSoftware/GUI/images/`, where you'll find the image files that will be used in the application. You'll also find a .qrc file which specifies any image that you want to include. If you want to use new images you'll need to specify their name inside such file. Next execute the following command

```
pyrcc5 -o __GUI_images__.py images.qrc
```
This will update the `__GUI_images__.py` file, which needs to be copied into the folder `abacusSoftware` and replace the file located there with the same name. Now the image resources can be called from within the code by doing, for example,

```
splash_pix = QtGui.QPixmap(':/splash.png').scaledToWidth(600)
```

### Fixing pyinstaller:
https://github.com/pyinstaller/pyinstaller/commit/082078e30aff8f5b8f9a547191066d8b0f1dbb7e

https://github.com/pyinstaller/pyinstaller/commit/59a233013cf6cdc46a67f0d98a995ca65ba7613a

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Tausand-dev/AbacusSoftware",
    "name": "abacusSoftware",
    "maintainer": "David Guzman",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "da.guzman@outlook.com",
    "keywords": null,
    "author": "Juan Barbosa",
    "author_email": "js.barbosa10@uniandes.edu.co",
    "download_url": "https://files.pythonhosted.org/packages/03/df/d5e737ea527f075dfb5903f053725ef3cee3e93e8f888eeaf4327287f4c8/abacussoftware-1.6.1.tar.gz",
    "platform": null,
    "description": "# AbacusSoftware\nAbacus Software is a suite of tools built to ensure your experience with Tausand's coincidence counters becomes simplified.\n\nWritten in Python3, abacusSoftware relies on the following modules:\n\n- pyAbacus\n- pyqtgraph\n- NumPy\n- PyQt5\n- pyserial\n- qtmodern\n\n## Preview\n\nA quick demo video to preview this software is available at: https://youtu.be/c4QO8p1WeSE\n\n## Installation\n`abacusSoftware` can be installed using `pip` as: \n```\npip install abacusSoftware\n```\n\nOr from GitHub\n```\npip install git+https://github.com/Tausand-dev/abacusSoftware.git\n```\n\n## Execute abacusSoftware\nOn a terminal or command prompt type\n```\nabacusSoftware\n```\n\n### Grant port access on Linux\nMost Linux configurations have a dialout group for full and direct access to serial ports. By adding your user account to this group you will have the necessary permissions for Abacus Software to communicate with the serial ports.\n\n1. Open Terminal.\n2. Enter the following command, replacing ```<username>``` with the name of your account.\n```\nsudo usermod -a -G dialout <username>\n```\n3. Sign in and out for the changes to take effect.\n\n\n## For developers\n### Updating to a new version\nWrite the changes of the new version in the file LastVersionNotes.md.\nOnce the version is ready to update, run the script updateversion.py to include the last version notes in the release_history.md file.\n### Creating a virtual environment\nRun the following code to create a virtual environment called `.venv`\n```\npython -m venv .venv\n```\n\n#### Activate\n- On Unix systems:\n```\nsource .venv/bin/activate\n```\n- On Windows:\n```\n.venv\\Scripts\\activate\n```\n\n#### Deactivate\n```\ndeactivate\n```\n\n### Installing packages\nAfter the virtual environment has been activated, install required packages by using:\n```\npython -m pip install -r requirements.txt\n```\n\n### Freezing code\nAfter activating the virtual environment\n\n#### Windows\nRun the following command \n```\npyinstaller --additional-hooks-dir installers/pyinstaller_hooks/ --name AbacusSoftware --onefile --noconsole -i abacusSoftware/GUI/images/abacus_small.ico test.py\n```\nTwo folders will be created: build and dist. Inside `dist` you'll find the `.exe` file. To create an installer, first install Inno Setup from https://jrsoftware.org/isinfo.php#stable. Then, using the File Explorer, go to the folder `installers` and double-click `installer_builder.iss` or open it from Inno Setup if it is already opened. Click on the play icon and then follow the process, which includes the creation of the installer and the installation itself.\n\nThe installer will be saved in a folder called `Output`.\n\n### MacOS\nRun the following command\n```\npyinstaller --additional-hooks-dir installers/pyinstaller_hooks/ --name AbacusSoftware --onefile --noconsole -i abacusSoftware/GUI/images/Abacus_small.png test.py\n```\nTwo folders will be created: build and dist. Inside `dist` you'll find the `.app` file. This file can be run from a console by executing the command\nTo change the icon of the `.app` file follow the instructions here https://appleinsider.com/articles/21/01/06/how-to-change-app-icons-on-macos\n\n### Linux\nRun the following command\n```\npyinstaller --additional-hooks-dir installers/pyinstaller_hooks/ --name AbacusSoftware --onefile --noconsole -i abacusSoftware/GUI/images/Abacus_small.png test.py\n```\nTwo folders will be created: build and dist. Inside dist you'll find the executable file. This file can be run from a console by executing the command\n\n```\n./AbacusSoftware\n```\nIf it doesn't run, make sure it has execute permissions. In case it doesn't run `chmod +x AbacusSoftware` and then try again. The executable file could be used to create a Desktop entry so it can be lauched as an application (for example in Gnome, an icon could be assigned)\n\nTo create an AppImage that can be run from multiple Linux distributions and be launch by double clicking, follow the next steps.\n* Create the following folder path: \n\tAbacusSoftware.AppDir/usr/bin\n* Place the executable inside the bin folder \n* Place the icon Abacus_small.png located at abacusSoftware/GUI/images/Abacus_small.png inside AbacusSoftware.AppDir\n* Create a file called AbacusSoftware.desktop inside AbacusSoftware.AppDir\n* Edit the `.desktop` file with the following\n\n```\n[Desktop Entry]\nName=AbacusSoftware\nExec=AbacusSoftware\nIcon=Abacus_small\nType=Application\nCategories=Utility;\n```\n\n* Give execution permisions to the `.desktop` file: `chmod +x AbacusSoftware.desktop`\n* Create a script called `AppRun` with the following contents\n\n```\n#!/bin/bash\nSELF=$(readlink -f \"$0\")\nHERE=${SELF%/*}\nEXEC=\"${HERE}/usr/bin/AbacusSoftware\"\nexec \"${EXEC}\"\n```\n\n* Give execution permisions to the `AppRun` file: `chmod +x AppRun`. After this step, the app should run after doing `./AppRun` on a Terminal.\n* For 64-bit architecture, download appimagetool-x86_64.AppImage from https://github.com/AppImage/AppImageKit/releases/ and give execution permisions to it. \n* Place appimagetool outside AbacusSoftware.AppDir and run\n```\nARCH=x86_64 ./appimagetool-x86_64.AppImage AbacusSoftware.AppDir\n```\n* The file `AbacusSoftware-x86_64.AppImage` will be created. This file can be opened by double clicking it.\n\n\n### Generating images and icons\nIn linux, `cd` into `abacusSoftware/GUI/images/`, where you'll find the image files that will be used in the application. You'll also find a .qrc file which specifies any image that you want to include. If you want to use new images you'll need to specify their name inside such file. Next execute the following command\n\n```\npyrcc5 -o __GUI_images__.py images.qrc\n```\nThis will update the `__GUI_images__.py` file, which needs to be copied into the folder `abacusSoftware` and replace the file located there with the same name. Now the image resources can be called from within the code by doing, for example,\n\n```\nsplash_pix = QtGui.QPixmap(':/splash.png').scaledToWidth(600)\n```\n\n### Fixing pyinstaller:\nhttps://github.com/pyinstaller/pyinstaller/commit/082078e30aff8f5b8f9a547191066d8b0f1dbb7e\n\nhttps://github.com/pyinstaller/pyinstaller/commit/59a233013cf6cdc46a67f0d98a995ca65ba7613a\n",
    "bugtrack_url": null,
    "license": "GPL",
    "summary": "Abacus Software is a suite of tools built to ensure your experience with Tausand's coincidence counters becomes simplified.",
    "version": "1.6.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/Tausand-dev/AbacusSoftware/issues",
        "Homepage": "https://github.com/Tausand-dev/AbacusSoftware"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8aeade98a7c5901f5efd8d29b7fcab5d77462dfb092d5697ca82ded70923ea45",
                "md5": "54dd63cd850617696ac4013d92c46409",
                "sha256": "b0dda650448d323935acdf32465b1689f1898777ef62d203fad6adf03c2e3777"
            },
            "downloads": -1,
            "filename": "abacusSoftware-1.6.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "54dd63cd850617696ac4013d92c46409",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 505404,
            "upload_time": "2024-08-31T14:11:22",
            "upload_time_iso_8601": "2024-08-31T14:11:22.956814Z",
            "url": "https://files.pythonhosted.org/packages/8a/ea/de98a7c5901f5efd8d29b7fcab5d77462dfb092d5697ca82ded70923ea45/abacusSoftware-1.6.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "03dfd5e737ea527f075dfb5903f053725ef3cee3e93e8f888eeaf4327287f4c8",
                "md5": "ff998bdf48059a04ed11a3069ace20c4",
                "sha256": "62a771ec3b2e72153be6cee56d835db3b85327b97a3fb4a03576e846ce8b6a5d"
            },
            "downloads": -1,
            "filename": "abacussoftware-1.6.1.tar.gz",
            "has_sig": false,
            "md5_digest": "ff998bdf48059a04ed11a3069ace20c4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 481357,
            "upload_time": "2024-08-31T14:11:25",
            "upload_time_iso_8601": "2024-08-31T14:11:25.534352Z",
            "url": "https://files.pythonhosted.org/packages/03/df/d5e737ea527f075dfb5903f053725ef3cee3e93e8f888eeaf4327287f4c8/abacussoftware-1.6.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-31 14:11:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Tausand-dev",
    "github_project": "AbacusSoftware",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "abacussoftware"
}
        
Elapsed time: 0.44225s