GameSentenceMiner 2.12.6.dev0__tar.gz → 2.12.7.post1__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.
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/config_gui.py +42 -37
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/ocr/owocr_helper.py +2 -2
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/owocr/owocr/run.py +1 -1
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/wip/get_overlay_coords.py +7 -6
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner.egg-info/PKG-INFO +1 -1
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/PKG-INFO +1 -1
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/pyproject.toml +1 -1
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/__init__.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/ai/__init__.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/ai/ai_prompting.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/anki.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/assets/__init__.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/assets/icon.png +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/assets/icon128.png +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/assets/icon256.png +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/assets/icon32.png +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/assets/icon512.png +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/assets/icon64.png +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/assets/pickaxe.png +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/gametext.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/gsm.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/obs.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/ocr/__init__.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/ocr/gsm_ocr_config.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/ocr/owocr_area_selector.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/ocr/ss_picker.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/owocr/owocr/config.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/owocr/owocr/ocr.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/__init__.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/audio_offset_selector.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/communication/__init__.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/communication/send.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/communication/websocket.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/configuration.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/downloader/Untitled_json.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/downloader/__init__.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/downloader/download_tools.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/downloader/oneocr_dl.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/electron_config.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/ffmpeg.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/gsm_utils.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/model.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/notification.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/package.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/ss_selector.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/text_log.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/window_transparency.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/vad.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/__init__.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/service.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/static/__init__.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/static/favicon.ico +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/static/favicon.svg +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/static/site.webmanifest +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/static/style.css +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/templates/__init__.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/templates/index.html +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/templates/text_replacements.html +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/templates/utility.html +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/texthooking_page.py +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner.egg-info/SOURCES.txt +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner.egg-info/requires.txt +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner.egg-info/top_level.txt +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/LICENSE +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/README.md +0 -0
- {gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/setup.cfg +0 -0
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/config_gui.py
RENAMED
@@ -1725,47 +1725,52 @@ class ConfigApp:
|
|
1725
1725
|
widget.destroy()
|
1726
1726
|
|
1727
1727
|
wip_frame = self.wip_tab
|
1728
|
+
try:
|
1728
1729
|
|
1729
|
-
|
1730
|
-
|
1731
|
-
|
1732
|
-
|
1733
|
-
|
1734
|
-
|
1735
|
-
|
1736
|
-
|
1737
|
-
|
1738
|
-
|
1739
|
-
|
1730
|
+
ttk.Label(wip_frame, text="Warning: These features are experimental and may not work as expected.",
|
1731
|
+
foreground="red", font=("Helvetica", 10, "bold")).grid(row=self.current_row, column=0, columnspan=2,
|
1732
|
+
sticky='W', pady=5)
|
1733
|
+
|
1734
|
+
self.current_row += 1
|
1735
|
+
|
1736
|
+
ttk.Label(wip_frame, text="Overlay requires OwOCR dependencies to be installed, and requires an external app to be running.",
|
1737
|
+
foreground="red", font=("Helvetica", 10, "bold")).grid(row=self.current_row, column=0, columnspan=2,
|
1738
|
+
sticky='W', pady=5)
|
1739
|
+
|
1740
|
+
self.current_row += 1
|
1740
1741
|
|
1741
|
-
|
1742
|
-
|
1743
|
-
|
1744
|
-
|
1745
|
-
|
1746
|
-
|
1747
|
-
|
1742
|
+
HoverInfoLabelWidget(wip_frame, text="Overlay WebSocket Port:",
|
1743
|
+
tooltip="Port for the overlay WebSocket communication. Used for experimental overlay features.",
|
1744
|
+
row=self.current_row, column=0)
|
1745
|
+
self.overlay_websocket_port = ttk.Entry(wip_frame)
|
1746
|
+
self.overlay_websocket_port.insert(0, str(self.settings.wip.overlay_websocket_port))
|
1747
|
+
self.overlay_websocket_port.grid(row=self.current_row, column=1, sticky='EW', pady=2)
|
1748
|
+
self.current_row += 1
|
1748
1749
|
|
1749
|
-
|
1750
|
-
|
1751
|
-
|
1752
|
-
|
1753
|
-
|
1754
|
-
|
1755
|
-
|
1750
|
+
HoverInfoLabelWidget(wip_frame, text="Overlay WebSocket Send:",
|
1751
|
+
tooltip="Enable to send overlay data via WebSocket. Experimental feature.",
|
1752
|
+
row=self.current_row, column=0)
|
1753
|
+
self.overlay_websocket_send = tk.BooleanVar(value=self.settings.wip.overlay_websocket_send)
|
1754
|
+
ttk.Checkbutton(wip_frame, variable=self.overlay_websocket_send, bootstyle="round-toggle").grid(
|
1755
|
+
row=self.current_row, column=1, sticky='W', pady=2)
|
1756
|
+
self.current_row += 1
|
1756
1757
|
|
1757
|
-
|
1758
|
-
|
1759
|
-
|
1760
|
-
|
1761
|
-
|
1762
|
-
|
1763
|
-
|
1764
|
-
|
1765
|
-
|
1766
|
-
|
1767
|
-
|
1768
|
-
|
1758
|
+
HoverInfoLabelWidget(wip_frame, text="Monitor to Capture:",
|
1759
|
+
tooltip="Select the monitor to capture (1-based index).",
|
1760
|
+
row=self.current_row, column=0)
|
1761
|
+
self.monitor_to_capture = ttk.Combobox(wip_frame, values=self.monitors, state="readonly")
|
1762
|
+
|
1763
|
+
# set index of monitor to capture, not the string
|
1764
|
+
if self.monitors:
|
1765
|
+
self.monitor_to_capture.current(self.settings.wip.monitor_to_capture)
|
1766
|
+
else:
|
1767
|
+
self.monitor_to_capture.set("OwOCR Not Detected")
|
1768
|
+
self.monitor_to_capture.grid(row=self.current_row, column=1, sticky='EW', pady=2)
|
1769
|
+
self.current_row += 1
|
1770
|
+
|
1771
|
+
except Exception as e:
|
1772
|
+
logger.error(f"Error setting up wip tab to capture: {e}")
|
1773
|
+
ttk.Label(wip_frame, text="Error setting up WIP tab", foreground="red").grid(row=self.current_row, column=0, columnspan=2, sticky='W', pady=5)
|
1769
1774
|
|
1770
1775
|
self.add_reset_button(wip_frame, "wip", self.current_row, 0, self.create_wip_tab)
|
1771
1776
|
|
@@ -197,7 +197,7 @@ last_ocr2_result = []
|
|
197
197
|
last_sent_result = ""
|
198
198
|
|
199
199
|
def do_second_ocr(ocr1_text, time, img, filtering, pre_crop_image=None, ignore_furigana_filter=False, ignore_previous_result=False):
|
200
|
-
global twopassocr, ocr2, last_ocr2_result
|
200
|
+
global twopassocr, ocr2, last_ocr2_result, last_sent_result
|
201
201
|
try:
|
202
202
|
orig_text, text = run.process_and_write_results(img, None, last_ocr2_result if not ignore_previous_result else None, filtering, None,
|
203
203
|
engine=get_ocr_ocr2(), furigana_filter_sensitivity=furigana_filter_sensitivity if not ignore_furigana_filter else 0)
|
@@ -293,7 +293,7 @@ def reset_callback_vars():
|
|
293
293
|
run.set_last_image(None)
|
294
294
|
|
295
295
|
def text_callback(text, orig_text, time, img=None, came_from_ss=False, filtering=None, crop_coords=None):
|
296
|
-
global twopassocr, ocr2, previous_text, last_oneocr_time, text_stable_start_time, previous_orig_text, previous_img, force_stable, previous_ocr1_result, previous_text_list
|
296
|
+
global twopassocr, ocr2, previous_text, last_oneocr_time, text_stable_start_time, previous_orig_text, previous_img, force_stable, previous_ocr1_result, previous_text_list, last_sent_result
|
297
297
|
orig_text_string = ''.join([item for item in orig_text if item is not None]) if orig_text else ""
|
298
298
|
if came_from_ss:
|
299
299
|
save_result_image(img)
|
@@ -900,7 +900,7 @@ class OBSScreenshotThread(threading.Thread):
|
|
900
900
|
logger.error("No active source found in the current scene.")
|
901
901
|
time.sleep(1)
|
902
902
|
continue
|
903
|
-
img = obs.get_screenshot_PIL(source_name=self.current_source_name, width=self.width, height=self.height, img_format='
|
903
|
+
img = obs.get_screenshot_PIL(source_name=self.current_source_name, width=self.width, height=self.height, img_format='png', compression=80)
|
904
904
|
|
905
905
|
if img is not None:
|
906
906
|
if not img.getbbox():
|
@@ -9,13 +9,14 @@ from typing import Dict, Any, List, Tuple
|
|
9
9
|
from GameSentenceMiner.util.electron_config import get_ocr_language
|
10
10
|
|
11
11
|
if get_config().wip.overlay_websocket_send:
|
12
|
-
|
12
|
+
try:
|
13
|
+
from GameSentenceMiner.owocr.owocr.ocr import GoogleLens, OneOCR, get_regex
|
14
|
+
oneocr = OneOCR()
|
15
|
+
lens = GoogleLens()
|
16
|
+
except ImportError:
|
17
|
+
pass
|
13
18
|
from GameSentenceMiner.obs import *
|
14
19
|
|
15
|
-
if get_config().wip.overlay_websocket_send:
|
16
|
-
oneocr = OneOCR()
|
17
|
-
lens = GoogleLens()
|
18
|
-
|
19
20
|
|
20
21
|
def _convert_box_to_pixels_v2(
|
21
22
|
bbox_data: Dict[str, float],
|
@@ -314,7 +315,7 @@ async def get_full_screenshot() -> Image.Image | None:
|
|
314
315
|
else:
|
315
316
|
monitors = [monitors[0]]
|
316
317
|
monitor = monitors[get_config().wip.monitor_to_capture]
|
317
|
-
img = get_screenshot_PIL(compression=
|
318
|
+
img = get_screenshot_PIL(compression=90, img_format='jpg')
|
318
319
|
# Put the image over a transparent background without stretching
|
319
320
|
new_img = Image.new("RGBA", (monitor['width'], monitor['height']), (0, 0, 0, 0))
|
320
321
|
# Calculate coordinates to center img horizontally and vertically
|
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
|
|
7
7
|
|
8
8
|
[project]
|
9
9
|
name = "GameSentenceMiner"
|
10
|
-
version = "2.12.
|
10
|
+
version = "2.12.7.post1"
|
11
11
|
description = "A tool for mining sentences from games. Update: Overlay?"
|
12
12
|
readme = "README.md"
|
13
13
|
requires-python = ">=3.10"
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/__init__.py
RENAMED
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/ai/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/assets/icon.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/assets/icon32.png
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/assets/icon64.png
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/gametext.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/ocr/__init__.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/ocr/ocrconfig.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/ocr/ss_picker.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/ffmpeg.py
RENAMED
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/gsm_utils.py
RENAMED
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/model.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/package.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/util/text_log.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/__init__.py
RENAMED
File without changes
|
{gamesentenceminer-2.12.6.dev0 → gamesentenceminer-2.12.7.post1}/GameSentenceMiner/web/service.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|