<commit_before># OVERVIEW
This project contains a Graphical User Interface for Desktops that interfaces with the DigiCue Blue (made by OB Cues) and the BLED112 Bluetooth USB dongle (made by Silicon Labs, sold separately from the DigiCue Blue). The project is written in Python for portability, and includes a py2exe script for compiling to a Windows executable. No system installation is necessary and the program can run from the directory. Run main.py or main.exe to start. serialport.py is the serial port selection GUI, and will load automatically if comport.cfg is blank or does not exist. The program appends comma-delimited data into data.csv for each shot.

You are free to modify and redistribute this code as long as you include the MIT license with your distribution.
For any questions, please contact <NAME> at nataddrho(at)gmail(dot)com.

# SETUP PYTHON APP
If you wish to run the app without using the exe file there are a couple things to cover first. There are external libraries used in this project which you will need installed in order to run the command `python main.py`. These libraries can be found in the `requirements.txt` file, and can all be installed in one command once a virtual environment has been setup. Here is a walkthrough:

1. Install virtualenv (`pip install virtualenv`) or see this link: https://virtualenv.pypa.io/en/stable/installation/
2. Run virtualenv from the root directory of this project to create a directory for the new virtual environment `venv`.:
    - `virtualenv venv`
3. Run the command to activate this virtual environment: (from the root directory, with access to the new folder `venv`)
    - `source venv/bin/activate`
4. You should now see `(venv)` in front of your command prompt. If this is the case, you are now encapsulated in your virtual environment, and anything you install via pip will not affect your global installations.
    - The command `deactivate` will get you out of this virtual environment.
5. Run the command `pip install -r requirements.txt`
6. Once this finishes, you are good to go. Just make sure to repeat step 3 whenever you're not in the virtual environment anymore. You should now be able to run `python main.py`, or `python src/main.py` if you're still in the root directory.

# BLED112 USB DONGLE
The BLED112 USB dongle is a small Bluetooth low energy transceiver with built-in antenna available from Silicon Labs. See https://www.silabs.com/products/wireless/bluetooth/bluetooth-low-energy-modules/bled112-bluetooth-smart-dongle. It is also available for purchase through a variety of distributors. This software will work with any serial device that interprets Bluegiga commands. Other third-party Bluetooth dongles are not supported.

# DIGICUE BLUE
The DigiCue Blue is a small electronic coach that attaches to the end of your pool, snooker, or billiards cue. The device communicates with your mobile device via Bluetooth and helps improve your game. See www.digicue.net for more information. Please note that the original DigiCue does not support wireless communication.

# HOW TO USE
1. Insert the DigiCue Blue into the rubber housing that best fits your cue (there are two sizes) with the power switch notch aligned with the center of the DigiCue Logo. (See image A).

2. Push the DigiCue Blue down towards the bottom of the rubber housing so that the Power Button Circle is in line with the power button on the DigiCue Blue. (See image B). A rib in the inside of the housing will hold the DigiCue Blue in place.

3. Slide the rubber housing onto the butt end of your cue, so that end of your cue makes physical contact with the DigiCue Blue plastic cap.

4. Purchase a BLED112 Bluetooth USB dongle from Silicon Labs and insert it into your USB port of your computer. Alternatively, download the DigiCue app to your mobile device. Both iOS and Android apps are available.

5. Open the Configure tab and press the power button on the DigiCue Blue once. The MAC address of the DigiCue Blue should appear. If there are multiple DigiCue Blues available, select which one you want to connect to.

6. Play your favorite billiards game. The DigiCue Blue will vibrate when a fault is detected in your stroke, and will wirelessly send information to your computer or mobile device. Each metric is customizable and gives you full control over many aspects of your stroke fundamentals. To customize the DigiCue Blue settings, go to the Configure tab and select the options you want. Then press the DigiCue Blue power button twice and hold it close to the USB dongle or mobile device. The DigiCue Blue will vibrate four times when successfully configured.

7. To remove the DigiCue Blue from the rubber housing, push with your thumb on the spot on the rubber housing as indicated in image C until the unit dislodges. Do NOT push up from the very bottom of the rubber housing as this could damage the DigiCue Blue.

8. You must complete a product registration form within 30 days of purchase to activate the warranty. The DigiCue Blue warranty form is available online at www.obcues.com.
<commit_msg>Update description for what pip install -r requirements.txt will do<commit_after># OVERVIEW
This project contains a Graphical User Interface for Desktops that interfaces with the DigiCue Blue (made by OB Cues) and the BLED112 Bluetooth USB dongle (made by Silicon Labs, sold separately from the DigiCue Blue). The project is written in Python for portability, and includes a py2exe script for compiling to a Windows executable. No system installation is necessary and the program can run from the directory. Run main.py or main.exe to start. serialport.py is the serial port selection GUI, and will load automatically if comport.cfg is blank or does not exist. The program appends comma-delimited data into data.csv for each shot.

You are free to modify and redistribute this code as long as you include the MIT license with your distribution.
For any questions, please contact <NAME> at nataddrho(at)gmail(dot)com.

# SETUP PYTHON APP
If you wish to run the app without using the exe file there are a couple things to cover first. There are external libraries used in this project which you will need installed in order to run the command `python main.py`. These libraries can be found in the `requirements.txt` file, and can all be installed in one command once a virtual environment has been setup. Here is a walkthrough:

1. Install virtualenv (`pip install virtualenv`) or see this link: https://virtualenv.pypa.io/en/stable/installation/
2. Run virtualenv from the root directory of this project to create a directory for the new virtual environment `venv`:
    - `virtualenv venv`
3. Run the command to activate this virtual environment (from the root directory, with access to the new folder `venv`):
    - `source venv/bin/activate`
4. You should now see `(venv)` in front of your command prompt. If this is the case, you are now encapsulated in your virtual environment, and anything you install via pip will not affect your global installations.
    - The command `deactivate` will get you out of this virtual environment.
5. Run the command `pip install -r requirements.txt` to install all external dependencies for this project.
6. Once this finishes, you are good to go. Just make sure to repeat step 3 whenever you're not in the virtual environment anymore. You should now be able to run `python main.py`, or `python src/main.py` if you're still in the root directory.

# BLED112 USB DONGLE
The BLED112 USB dongle is a small Bluetooth low energy transceiver with built-in antenna available from Silicon Labs. See https://www.silabs.com/products/wireless/bluetooth/bluetooth-low-energy-modules/bled112-bluetooth-smart-dongle. It is also available for purchase through a variety of distributors. This software will work with any serial device that interprets Bluegiga commands. Other third-party Bluetooth dongles are not supported.

# DIGICUE BLUE
The DigiCue Blue is a small electronic coach that attaches to the end of your pool, snooker, or billiards cue. The device communicates with your mobile device via Bluetooth and helps improve your game. See www.digicue.net for more information. Please note that the original DigiCue does not support wireless communication.

# HOW TO USE
1. Insert the DigiCue Blue into the rubber housing that best fits your cue (there are two sizes) with the power switch notch aligned with the center of the DigiCue Logo. (See image A).

2. Push the DigiCue Blue down towards the bottom of the rubber housing so that the Power Button Circle is in line with the power button on the DigiCue Blue. (See image B). A rib in the inside of the housing will hold the DigiCue Blue in place.

3. Slide the rubber housing onto the butt end of your cue, so that end of your cue makes physical contact with the DigiCue Blue plastic cap.

4. Purchase a BLED112 Bluetooth USB dongle from Silicon Labs and insert it into your USB port of your computer. Alternatively, download the DigiCue app to your mobile device. Both iOS and Android apps are available.

5. Open the Configure tab and press the power button on the DigiCue Blue once. The MAC address of the DigiCue Blue should appear. If there are multiple DigiCue Blues available, select which one you want to connect to.

6. Play your favorite billiards game. The DigiCue Blue will vibrate when a fault is detected in your stroke, and will wirelessly send information to your computer or mobile device. Each metric is customizable and gives you full control over many aspects of your stroke fundamentals. To customize the DigiCue Blue settings, go to the Configure tab and select the options you want. Then press the DigiCue Blue power button twice and hold it close to the USB dongle or mobile device. The DigiCue Blue will vibrate four times when successfully configured.

7. To remove the DigiCue Blue from the rubber housing, push with your thumb on the spot on the rubber housing as indicated in image C until the unit dislodges. Do NOT push up from the very bottom of the rubber housing as this could damage the DigiCue Blue.

8. You must complete a product registration form within 30 days of purchase to activate the warranty. The DigiCue Blue warranty form is available online at www.obcues.com.

{'fraction_non_alphanumeric': 0.03717399766446088, 'fraction_numerical': 0.006422732580770728, 'mean_word_length': 4.297422680412371, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 4, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1389762', 'n_tokens_mistral': 2624, 'n_tokens_neox': 2506, 'n_words': 1653}