diff --git a/.gitignore b/.gitignore index dc72a5af6..7d6ca7fa7 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,7 @@ sonar-project.properties # Ignore User Data caster/bin/data + +# Ignore dist files +dist +castervoice.egg-info diff --git a/License.md b/LICENSE similarity index 100% rename from License.md rename to LICENSE diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 000000000..676be6654 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,8 @@ +global-exclude *.pyc +include castervoice/bin/data/configdebug.txt +include castervoice/bin/share/bringme.toml.defaults +include castervoice/bin/reboot.bat +include castervoice/bin/reboot_wsr.bat +include castervoice/lib/dll/tirg-dll.dll +include castervoice/asynch/sikuli/server/xmlrpc_server.sikuli/xmlrpc_server.html +include castervoice/asynch/sikuli/server/xmlrpc_server.sikuli/xmlrpc_server.py diff --git a/_caster.py b/_caster.py index 09138a1ce..2f4f1bae3 100644 --- a/_caster.py +++ b/_caster.py @@ -9,14 +9,13 @@ import time from dragonfly import (Function, Grammar, Playback, Dictation, Choice, Pause) -from caster.lib.ccr.standard import SymbolSpecs - +from castervoice.lib.ccr.standard import SymbolSpecs def _wait_for_wsr_activation(): count = 1 while True: try: - from caster.apps import firefox + from castervoice.apps import firefox break except: print("(%d) Attempting to load Caster -- WSR not loaded and listening yet..." @@ -24,45 +23,41 @@ def _wait_for_wsr_activation(): count += 1 time.sleep(1) - _NEXUS = None - -from caster.lib import settings # requires nothing +from castervoice.lib import settings # requires nothing settings.WSR = __name__ == "__main__" -from caster.lib import utilities # requires settings +from castervoice.lib import utilities # requires settings if settings.WSR: _wait_for_wsr_activation() SymbolSpecs.set_cancel_word("escape") -from caster.lib import control +from castervoice.lib import control _NEXUS = control.nexus() -from caster.apps import * -from caster.asynch import * -from caster.lib import context -from caster.lib.actions import Key -import caster.lib.dev.dev -from caster.asynch.sikuli import sikuli -from caster.lib import navigation +from castervoice.apps import * +from castervoice.asynch import * +from castervoice.lib import context +from castervoice.lib.actions import Key +import castervoice.lib.dev.dev +from castervoice.asynch.sikuli import sikuli +from castervoice.lib import navigation navigation.initialize_clipboard(_NEXUS) -from caster.lib.dfplus.state.short import R -from caster.lib.dfplus.additions import IntegerRefST - -from caster.lib.dfplus.merge.mergepair import MergeInf -from caster.lib.ccr import * -from caster.lib.ccr.recording.again import Again -from caster.lib.ccr.recording.bringme import bring_rule -from caster.lib.ccr.recording.alias import Alias -from caster.lib.ccr.recording import history -from caster.lib.dev import dev -from caster.lib.dfplus.hint.nodes import css -from caster.user.filters.examples import scen4, modkeysup -from caster import user -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.state.short import R +from castervoice.lib.dfplus.additions import IntegerRefST + +from castervoice.lib.dfplus.merge.mergepair import MergeInf +from castervoice.lib.ccr import * +from castervoice.lib.ccr.recording.again import Again +from castervoice.lib.ccr.recording.bringme import bring_rule +from castervoice.lib.ccr.recording.alias import Alias +from castervoice.lib.ccr.recording import history +from castervoice.lib.dev import dev +from castervoice.lib.dfplus.hint.nodes import css +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.merge import gfilter def change_monitor(): - if settings.SETTINGS["miscellaneous"]["sikuli_enabled"]: + if settings.SETTINGS["sikuli"]["enabled"]: Playback([(["monitor", "select"], 0.0)]).execute() else: print("This command requires SikuliX to be enabled in the settings file") @@ -164,9 +159,11 @@ def generate_sm_ccr_choices(nexus): grammar.load() +_NEXUS.process_user_content() _NEXUS.merger.update_config() _NEXUS.merger.merge(MergeInf.BOOT) + print("*- Starting " + settings.SOFTWARE_NAME + " -*") if settings.WSR: diff --git a/caster/asynch/sikuli/scripts/example.sikuli/1434072940616.png b/caster/asynch/sikuli/scripts/example.sikuli/1434072940616.png deleted file mode 100644 index db6710bba..000000000 Binary files a/caster/asynch/sikuli/scripts/example.sikuli/1434072940616.png and /dev/null differ diff --git a/caster/asynch/sikuli/scripts/example.sikuli/example.html b/caster/asynch/sikuli/scripts/example.sikuli/example.html deleted file mode 100644 index bc85f53e6..000000000 --- a/caster/asynch/sikuli/scripts/example.sikuli/example.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - -
-

example.sikuli\example.sikuli

(Download this script) -
-
-from sikuli import *
-
-def export_command():
-    click()
-
- - diff --git a/caster/asynch/sikuli/scripts/example.sikuli/example.py b/caster/asynch/sikuli/scripts/example.sikuli/example.py deleted file mode 100644 index f44816894..000000000 --- a/caster/asynch/sikuli/scripts/example.sikuli/example.py +++ /dev/null @@ -1,5 +0,0 @@ -from sikuli import * - - -def export_command(): - click("1434072940616.png") diff --git a/caster/bin/inno/caster.bat b/caster/bin/inno/caster.bat deleted file mode 100644 index 0269b0fe8..000000000 --- a/caster/bin/inno/caster.bat +++ /dev/null @@ -1,24 +0,0 @@ -@echo off - -cd C:\NatLink\NatLink\MacroSystem - -@echo on - -git clone https://github.com/synkarius/caster.git - -@echo off - -cd C:\NatLink\NatLink\MacroSystem\caster - -mv * ../ -mv .git ../ -mv .gitignore ../ - -cd C:\NatLink\NatLink\MacroSystem -rmdir caster - -echo ------------------------------------------ -echo Caster Installation Complete -echo ------------------------------------------ - -pause \ No newline at end of file diff --git a/caster/bin/inno/caster.iss b/caster/bin/inno/caster.iss deleted file mode 100644 index 9fb47935f..000000000 --- a/caster/bin/inno/caster.iss +++ /dev/null @@ -1,17 +0,0 @@ -; Caster Installer -; – – – – – – – – – – – – – – – – – – -; This installs Caster - -[Setup] -AppName=Caster -AppVersion=0.3 -DefaultDirName={drive:C:}\temp\caster -DefaultGroupName=Caster -DirExistsWarning=no -OutputDir=inst - -[Files] -Source: "caster.bat"; DestDir: "{app}";Flags: replacesameversion recursesubdirs - -[Run] -Filename: "{app}\caster.bat" \ No newline at end of file diff --git a/caster/bin/inno/dependencies.iss b/caster/bin/inno/dependencies.iss deleted file mode 100644 index 6417d1921..000000000 --- a/caster/bin/inno/dependencies.iss +++ /dev/null @@ -1,17 +0,0 @@ -; Caster Dependencies Installer -; – – – – – – – – – – – – – – – – – – -; This installs NirCmd and pip python dependencies. - -[Setup] -AppName=Caster Dependencies -AppVersion=0.3 -DefaultDirName={drive:C:}\temp -DefaultGroupName=Caster Dependencies -DirExistsWarning=no -OutputDir=inst - -[Files] -Source: "dependencies\*.*"; DestDir: "{app}";Flags: replacesameversion recursesubdirs - -[Run] -Filename: "{app}\pip.bat" \ No newline at end of file diff --git a/caster/bin/inno/dependencies/Pip Install Dependencies.bat b/caster/bin/inno/dependencies/Pip Install Dependencies.bat deleted file mode 100644 index dbb69b616..000000000 --- a/caster/bin/inno/dependencies/Pip Install Dependencies.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -echo Installing: setuptools, future, dragonfly2, wxPython, pillow, toml - -cd c:\python27\scripts -pip install -U pip -pip install -U setuptools -pip install -U future -pip install -U dragonfly2 -pip install -U wxPython -pip install -U pillow -pip install -U toml - - - -echo ------------------------------------------ -echo Caster Dependencies Installation Complete -echo ------------------------------------------ - -pause \ No newline at end of file diff --git a/caster/bin/inno/dependencies/Pip Uninstall Dependencies.bat b/caster/bin/inno/dependencies/Pip Uninstall Dependencies.bat deleted file mode 100644 index 1945dc9d7..000000000 --- a/caster/bin/inno/dependencies/Pip Uninstall Dependencies.bat +++ /dev/null @@ -1,22 +0,0 @@ -@echo off -echo Uninstall dragonfly2, wxPython, future, pillow, six, pyperclip, pillow, pywin32 -echo #### -echo #### Warning! Only uninstall dependencies that are no longer used for all Python projects. -echo #### - -cd c:\python27\scripts -pip uninstall dragonfly2 -pip uninstall wxPython -pip uninstall future -pip uninstall pillow -pip uninstall six -pip uninstall pyperclip -pip uninstall pillow -pip uninstall pywin32 -pip uninstall toml - -echo ------------------------------------------ -echo Caster Dependencies Uninstall Complete -echo ------------------------------------------ - -pause \ No newline at end of file diff --git a/caster/bin/inno/dragonfly_upgrade.bat b/caster/bin/inno/dragonfly_upgrade.bat deleted file mode 100644 index 568eaf2aa..000000000 --- a/caster/bin/inno/dragonfly_upgrade.bat +++ /dev/null @@ -1,31 +0,0 @@ -@echo off - -cd C:\ -mkdir temp_dragonfly -cd temp_dragonfly - - - -git clone --recursive https://github.com/Danesprite/dragonfly.git -cd dragonfly -python setup.py install - -echo ------------------------------------------ -echo Dragonfly Upgrade Complete -echo ------------------------------------------ - -git submodule foreach python setup.py install - - -echo ------------------------------------------ -echo Dragonfly Submodules installed -echo ------------------------------------------ - -python -m pip install .[sphinx] - - -cd C:\ -rmdir /S/Q temp_dragonfly - - -pause \ No newline at end of file diff --git a/caster/bin/inno/dragonfly_upgrade.iss b/caster/bin/inno/dragonfly_upgrade.iss deleted file mode 100644 index 99565c57f..000000000 --- a/caster/bin/inno/dragonfly_upgrade.iss +++ /dev/null @@ -1,17 +0,0 @@ -; Dragonfly Upgrader -; – – – – – – – – – – – – – – – – – – -; This upgrades Dragonfly from 0.6.5 to the most recent version from Github. - -[Setup] -AppName=Dragonfly Github Upgrader -AppVersion=0.2 -DefaultDirName={drive:C:}\temp\dragonfly -DefaultGroupName=Dragonfly Github Upgrader -DirExistsWarning=no -OutputDir=inst - -[Files] -Source: "dragonfly_upgrade.bat"; DestDir: "{app}";Flags: replacesameversion recursesubdirs - -[Run] -Filename: "{app}\dragonfly_upgrade.bat" \ No newline at end of file diff --git a/caster/bin/media/entertain_me.txt b/caster/bin/media/entertain_me.txt deleted file mode 100644 index e7ea82573..000000000 --- a/caster/bin/media/entertain_me.txt +++ /dev/null @@ -1,3 +0,0 @@ -http://www.lag.tv/ -https://news.ycombinator.com/ -http://www.ted.com/ \ No newline at end of file diff --git a/caster/doc/readthedocs/Sikuli.md b/caster/doc/readthedocs/Sikuli.md deleted file mode 100644 index f37d4fca0..000000000 --- a/caster/doc/readthedocs/Sikuli.md +++ /dev/null @@ -1,11 +0,0 @@ -# Sikuli Integration - -[This is Sikuli](http://www.sikuli.org). It's awesome, and you can use Caster to launch Sikuli actions by voice. - -## Video Version of Configuration Instructions - -[YouTube](https://youtu.be/RFdsD2OgDzk?list=PLV6JPhkq1x8LHu02YefhUU9rXiB2PK8tc) - -## Written Version of Configuration Instructions - -coming soon diff --git a/caster/lib/dfplus/state/short.py b/caster/lib/dfplus/state/short.py deleted file mode 100644 index d7954fab3..000000000 --- a/caster/lib/dfplus/state/short.py +++ /dev/null @@ -1,12 +0,0 @@ -''' -Created on Jun 7, 2015 - -@author: dave -''' -# shorter names for classes -from caster.lib.dfplus.state.actions import RegisteredAction -from caster.lib.dfplus.state.contextoptions import ContextLevel, ContextSet - -R = RegisteredAction -L = ContextLevel -S = ContextSet diff --git a/caster/lib/tests/unit/__init__.py b/caster/lib/tests/unit/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/caster/user/__init__.py b/caster/user/__init__.py deleted file mode 100644 index 361722397..000000000 --- a/caster/user/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from rules import * -from filters import * diff --git a/caster/user/filters/__init__.py b/caster/user/filters/__init__.py deleted file mode 100644 index aa450a9cd..000000000 --- a/caster/user/filters/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -import glob -import inspect -import os - - -def is_valid(module): - ''' This function attempts to import the filters in order to detect - errors in their implementation . After they are imported, they are garbage collected - when the function returns.''' - try: - _ = __import__(module, globals(), locals()) - return True - except Exception as e: - print("Ignoring filter '{}'. Failed to load with: ".format(module)) - print(e) - return False - - -modules = glob.glob(os.path.dirname(__file__) + "/*.py") -# only valid filters will be added to the list -__all__ = [ - os.path.basename(f)[:-3] for f in modules - if (not f.endswith('__init__.py') and is_valid(os.path.basename(f)[:-3])) -] diff --git a/caster/user/filters/examples/__init__.py b/caster/user/filters/examples/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/caster/user/filters/examples/modkeysup.py b/caster/user/filters/examples/modkeysup.py deleted file mode 100644 index ba84141c0..000000000 --- a/caster/user/filters/examples/modkeysup.py +++ /dev/null @@ -1,29 +0,0 @@ -''' -Created on Sep 27, 2015 - -@author: synkarius -''' - -from caster.lib.actions import Key -from caster.lib.dfplus.merge.mergepair import MergeInf -from caster.lib.dfplus.state.short import R - - -def add_modkeys(rule): - release = R(Key("shift:up, ctrl:up, alt:up"), rdescript="Mod Keys Up") - - if not hasattr(rule, "marked") and\ - rule.get_pronunciation()[0:6] != "Merged": # don't augment merged rules-- they'd get it twice - for spec in rule.mapping_actual().keys(): - rule.mapping_actual()[spec] = release + rule.mapping_actual()[spec] + release - rule.marked = True - - -def modkeysup(mp): - if mp.time == MergeInf.BOOT: - if mp.rule1 is not None: - add_modkeys(mp.rule1) - add_modkeys(mp.rule2) - - -# control.nexus().merger.add_filter(modkeysup) diff --git a/caster/user/filters/examples/scen4.py b/caster/user/filters/examples/scen4.py deleted file mode 100644 index 038ecb13b..000000000 --- a/caster/user/filters/examples/scen4.py +++ /dev/null @@ -1,82 +0,0 @@ -''' -Created on Sep 27, 2015 - -@author: synkarius -''' - -from caster.lib.actions import Text -from caster.lib.dfplus.merge.mergepair import MergeInf -from caster.lib.dfplus.state.short import R - - -def scenario_1(mp): - '''manually handle a conflicting spec''' - if mp.type == MergeInf.APP and mp.rule1 is not None: - print("doing merge for apps") - for spec in mp.rule1.mapping_actual().keys(): - if spec in mp.rule2.mapping_actual().keys(): - '''this filter function gives priority to - global rules over app rules''' - print("deleting conflicting spec " + spec) - del mp.rule2.mapping_actual()[spec] - - -# control.nexus().merger.add_filter(scenario_1) - - -def replace_spec(rule, target, replacement): - if target in rule.mapping_actual().keys(): - action = rule.mapping_actual()[target] - del rule.mapping_actual()[target] - rule.mapping_actual()[replacement] = action - - -def scenario_2(mp): - '''replacing a spec''' - if mp.time == MergeInf.BOOT: - # at merge time, the base rule can be None, so make sure to check - target = "[go to] line " - replacement = "travel to line " - - if mp.rule1 is not None: - replace_spec(mp.rule1, target, replacement) - replace_spec(mp.rule2, target, replacement) - - -# control.nexus().merger.add_filter(scenario_2) - - -def update_python(rule): - if "shells" in rule.mapping_actual().keys(): - rule.mapping_actual()["shells"] = R( - Text("not allowed to use 'else'"), rdescript="Troll Replacement") - - -def scenario_3(mp): - ''' replacing an action ''' - if mp.time == MergeInf.RUN and mp.type == MergeInf.GLOBAL: - # Inf.RUN means any time except boot or SelfModifyingRule updates - # Ing.GLOBAL means during global rule de/activation - if mp.rule1 is not None and mp.rule1.get_pronunciation() == "Python": - update_python(mp.rule1) - if mp.rule2.get_pronunciation() == "Python": - update_python(mp.rule2) - - -# control.nexus().merger.add_filter(scenario_3) - - -def add_is_to_python(rule): - if rule.get_pronunciation() == "Python": - rule.mapping_actual()["identity is"] = R(Text(" is "), rdescript="Python: Is") - - -def scenario_4(mp): - ''' adding an action ''' - if mp.time == MergeInf.BOOT: - if mp.rule1 is not None: - add_is_to_python(mp.rule1) - add_is_to_python(mp.rule2) - - -# control.nexus().merger.add_filter(scenario_4) diff --git a/caster/user/rules/__init__.py b/caster/user/rules/__init__.py deleted file mode 100644 index a4f701ab9..000000000 --- a/caster/user/rules/__init__.py +++ /dev/null @@ -1,25 +0,0 @@ -import glob -import inspect -import os - - -def is_valid(module): - ''' This function attempts to import the rules in order to detect - errors in their implementation . After they are imported, they are garbage collected - when the function returns.''' - try: - _ = __import__(module, globals(), locals()) - return True - except Exception as e: - print("Ignoring application '{}'. Failed to load with: ".format(module)) - print(e) - return False - - -modules = glob.glob(os.path.dirname(__file__) + "/*.py") -# only valid rules will be added to the list -__all__ = [ - os.path.basename(f)[:-3] - for f in modules - if (not f.endswith('__init__.py') and is_valid(os.path.basename(f)[:-3])) -] diff --git a/caster/user/rules/examples/__init__.py b/caster/user/rules/examples/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/castervoice/__init__.py b/castervoice/__init__.py new file mode 100644 index 000000000..c5af0fc80 --- /dev/null +++ b/castervoice/__init__.py @@ -0,0 +1 @@ +name = "castervoice" diff --git a/caster/apps/__init__.py b/castervoice/apps/__init__.py similarity index 95% rename from caster/apps/__init__.py rename to castervoice/apps/__init__.py index b22552b91..d5998601b 100644 --- a/caster/apps/__init__.py +++ b/castervoice/apps/__init__.py @@ -2,7 +2,7 @@ import inspect import os -from caster.lib import utilities +from castervoice.lib import utilities def is_valid(module): diff --git a/caster/apps/atom.py b/castervoice/apps/atom.py similarity index 98% rename from caster/apps/atom.py rename to castervoice/apps/atom.py index 2fbdec5ac..23bfc42b4 100644 --- a/caster/apps/atom.py +++ b/castervoice/apps/atom.py @@ -4,13 +4,13 @@ Official Site "https://atom.io/" """ -from caster.lib import control, settings -from caster.lib.actions import Key, Text -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control, settings +from castervoice.lib.actions import Key, Text +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R from dragonfly import Choice, Dictation, Grammar, Pause, Repeat # How long to wait for the Atom palette to load before hitting the enter key @@ -536,7 +536,7 @@ class AtomRule(MergeRule): #Sublime Style Column Selection---- #Placeholder #Atom | Dragonfly Development-------------------------------------------------------------------------------------------------------------------------------------------------------- - # Template to create more commands. Documentation: https://dragonfly.readthedocs.org/en/latest/actions.html and http://caster.readthedocs.io/en/latest/caster/doc/Intro/ + # Template to create more commands. Documentation: https://dragonfly.readthedocs.org/en/latest/actions.html and http://castervoice.readthedocs.io/en/latest/castervoice/doc/Intro/ # Used for basic key shortcuts #"text for voice command": ACK("modifier-key", "program name: command name/description"), #"": ACK("", "Atom: "), diff --git a/caster/apps/chrome.py b/castervoice/apps/chrome.py similarity index 92% rename from caster/apps/chrome.py rename to castervoice/apps/chrome.py index 45752ba7a..3bda58f28 100644 --- a/caster/apps/chrome.py +++ b/castervoice/apps/chrome.py @@ -11,14 +11,14 @@ from dragonfly import (Grammar, Dictation, Repeat) -from caster.lib import control -from caster.lib import settings -from caster.lib.actions import Key, Text -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.actions import Key, Text +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class ChromeRule(MergeRule): diff --git a/caster/apps/cmd.py b/castervoice/apps/cmd.py similarity index 80% rename from caster/apps/cmd.py rename to castervoice/apps/cmd.py index 017c86db4..419d174eb 100644 --- a/caster/apps/cmd.py +++ b/castervoice/apps/cmd.py @@ -11,13 +11,13 @@ from dragonfly import (Grammar, MappingRule) -from caster.lib import control -from caster.lib import settings -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R -from caster.lib.context import AppContext -from caster.lib.actions import (Key, Text) +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R +from castervoice.lib.context import AppContext +from castervoice.lib.actions import (Key, Text) class CMDRule(MergeRule): pronunciation = "command prompt" diff --git a/caster/apps/dragon.py b/castervoice/apps/dragon.py similarity index 89% rename from caster/apps/dragon.py rename to castervoice/apps/dragon.py index 3d9a9bba7..0e1d8f0bf 100644 --- a/caster/apps/dragon.py +++ b/castervoice/apps/dragon.py @@ -1,11 +1,11 @@ from dragonfly import (Grammar, Playback, Key, Dictation, Function) -from caster.lib import control -from caster.lib import utilities, settings -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import utilities, settings +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R _NEXUS = control.nexus() diff --git a/caster/apps/eclipse.py b/castervoice/apps/eclipse.py similarity index 94% rename from caster/apps/eclipse.py rename to castervoice/apps/eclipse.py index 6732f807e..705fb8069 100644 --- a/caster/apps/eclipse.py +++ b/castervoice/apps/eclipse.py @@ -7,17 +7,17 @@ from dragonfly.actions.action_paste import Paste from dragonfly.grammar.elements import Choice -from caster.lib import context as CONTEXT, alphanumeric -from caster.lib import control, utilities -from caster.lib import settings -from caster.lib.actions import Key, Text -from caster.lib.context import AppContext -from caster.lib.ccr.core.nav import Navigation -from caster.lib.dfplus.additions import IntegerRefST, Boolean -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.actions2 import UntilCancelled -from caster.lib.dfplus.state.short import R +from castervoice.lib import context as CONTEXT, alphanumeric +from castervoice.lib import control, utilities +from castervoice.lib import settings +from castervoice.lib.actions import Key, Text +from castervoice.lib.context import AppContext +from castervoice.lib.ccr.core.nav import Navigation +from castervoice.lib.dfplus.additions import IntegerRefST, Boolean +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.actions2 import UntilCancelled +from castervoice.lib.dfplus.state.short import R class EclipseController(object): diff --git a/caster/apps/emacs.py b/castervoice/apps/emacs.py similarity index 90% rename from caster/apps/emacs.py rename to castervoice/apps/emacs.py index 10f8628ef..af548e7d0 100644 --- a/caster/apps/emacs.py +++ b/castervoice/apps/emacs.py @@ -1,13 +1,13 @@ from dragonfly import (Grammar, Dictation) -from caster.lib import control -from caster.lib import settings -from caster.lib.actions import Key -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.actions import Key +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class EmacsRule(MergeRule): diff --git a/caster/apps/explorer.py b/castervoice/apps/explorer.py similarity index 78% rename from caster/apps/explorer.py rename to castervoice/apps/explorer.py index c7e57b96b..17b2e13f5 100644 --- a/caster/apps/explorer.py +++ b/castervoice/apps/explorer.py @@ -1,14 +1,14 @@ from dragonfly import (Grammar, MappingRule, Dictation, IntegerRef, Repeat, Pause) -from caster.lib import control -from caster.lib import settings -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R -from caster.lib.context import AppContext -from caster.lib.actions import (Key, Text) +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R +from castervoice.lib.context import AppContext +from castervoice.lib.actions import (Key, Text) class IERule(MergeRule): diff --git a/caster/apps/file_dialogue.py b/castervoice/apps/file_dialogue.py similarity index 85% rename from caster/apps/file_dialogue.py rename to castervoice/apps/file_dialogue.py index 99b3a3e16..ff64a183a 100644 --- a/caster/apps/file_dialogue.py +++ b/castervoice/apps/file_dialogue.py @@ -2,11 +2,11 @@ Pause, Repeat, Text) from dragonfly.actions.action_mimic import Mimic -from caster.lib import control, settings -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control, settings +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class FileDialogueRule(MergeRule): diff --git a/caster/apps/firefox.py b/castervoice/apps/firefox.py similarity index 85% rename from caster/apps/firefox.py rename to castervoice/apps/firefox.py index e53a0f80c..0d9933103 100644 --- a/caster/apps/firefox.py +++ b/castervoice/apps/firefox.py @@ -11,14 +11,14 @@ from dragonfly import (Grammar, Dictation, Repeat) -from caster.lib import control -from caster.lib import settings -from caster.lib.actions import Key, Text -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.actions import Key, Text +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class FirefoxRule(MergeRule): diff --git a/caster/apps/flashdevelop.py b/castervoice/apps/flashdevelop.py similarity index 88% rename from caster/apps/flashdevelop.py rename to castervoice/apps/flashdevelop.py index d6174ca82..a608747a0 100644 --- a/caster/apps/flashdevelop.py +++ b/castervoice/apps/flashdevelop.py @@ -1,14 +1,14 @@ from dragonfly import (Grammar, MappingRule, Dictation, Repeat, Pause) -from caster.lib import control -from caster.lib import settings -from caster.lib.actions import Key, Text -from caster.lib.ccr.core.nav import Navigation -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.actions import Key, Text +from castervoice.lib.ccr.core.nav import Navigation +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class FlashDevelopRule(MergeRule): diff --git a/caster/apps/fman.py b/castervoice/apps/fman.py similarity index 85% rename from caster/apps/fman.py rename to castervoice/apps/fman.py index 93951bdfc..eb80baffa 100644 --- a/caster/apps/fman.py +++ b/castervoice/apps/fman.py @@ -1,13 +1,13 @@ from dragonfly import (Grammar, Pause, Choice) -from caster.lib.actions import Key, Text -from caster.lib.context import AppContext +from castervoice.lib.actions import Key, Text +from castervoice.lib.context import AppContext -from caster.lib import control, settings -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control, settings +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class fmanRule(MergeRule): pronunciation = "F man" diff --git a/caster/apps/foxitreader.py b/castervoice/apps/foxitreader.py similarity index 74% rename from caster/apps/foxitreader.py rename to castervoice/apps/foxitreader.py index 0668dfca5..0700a30f3 100644 --- a/caster/apps/foxitreader.py +++ b/castervoice/apps/foxitreader.py @@ -1,13 +1,13 @@ from dragonfly import (Grammar, Dictation, Repeat) -from caster.lib import control -from caster.lib import settings -from caster.lib.actions import Key -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.actions import Key +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class FoxitRule(MergeRule): diff --git a/caster/apps/gitbash.py b/castervoice/apps/gitbash.py similarity index 93% rename from caster/apps/gitbash.py rename to castervoice/apps/gitbash.py index 093fd82e5..c904033f3 100644 --- a/caster/apps/gitbash.py +++ b/castervoice/apps/gitbash.py @@ -11,14 +11,14 @@ from dragonfly import (Grammar, Mimic, Function) -from caster.lib import control -from caster.lib import settings -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R -from caster.lib.context import AppContext -from caster.lib.actions import (Key, Text) +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R +from castervoice.lib.context import AppContext +from castervoice.lib.actions import (Key, Text) def _apply(n): diff --git a/caster/apps/gitter.py b/castervoice/apps/gitter.py similarity index 85% rename from caster/apps/gitter.py rename to castervoice/apps/gitter.py index 53b3b79d1..ef2ddb6c4 100644 --- a/caster/apps/gitter.py +++ b/castervoice/apps/gitter.py @@ -7,12 +7,12 @@ from dragonfly import Dictation, Grammar, MappingRule -from caster.lib import control, settings -from caster.lib.actions import Key, Text -from caster.lib.context import AppContext -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control, settings +from castervoice.lib.actions import Key, Text +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class GitterRule(MergeRule): diff --git a/caster/apps/griddouglas.py b/castervoice/apps/griddouglas.py similarity index 78% rename from caster/apps/griddouglas.py rename to castervoice/apps/griddouglas.py index ee90dc351..39aad44a3 100644 --- a/caster/apps/griddouglas.py +++ b/castervoice/apps/griddouglas.py @@ -4,14 +4,14 @@ """ from dragonfly import (Grammar, Function, Playback, Choice, MappingRule) -from caster.asynch.mouse import grids -from caster.lib import control -from caster.lib import settings -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R -from caster.lib.context import AppContext +from castervoice.asynch.mouse import grids +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R +from castervoice.lib.context import AppContext _NEXUS = control.nexus() diff --git a/caster/apps/gridlegion.py b/castervoice/apps/gridlegion.py similarity index 83% rename from caster/apps/gridlegion.py rename to castervoice/apps/gridlegion.py index 96b892000..aea79d4da 100644 --- a/caster/apps/gridlegion.py +++ b/castervoice/apps/gridlegion.py @@ -9,14 +9,14 @@ import win32api import win32con -from caster.asynch.mouse import grids -from caster.lib import control -from caster.lib import navigation, settings -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R -from caster.lib.context import AppContext +from castervoice.asynch.mouse import grids +from castervoice.lib import control +from castervoice.lib import navigation, settings +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R +from castervoice.lib.context import AppContext _NEXUS = control.nexus() diff --git a/caster/apps/gridrainbow.py b/castervoice/apps/gridrainbow.py similarity index 81% rename from caster/apps/gridrainbow.py rename to castervoice/apps/gridrainbow.py index 95c1f1969..9b9c844ed 100644 --- a/caster/apps/gridrainbow.py +++ b/castervoice/apps/gridrainbow.py @@ -5,14 +5,14 @@ from dragonfly import (Grammar, Function, Playback, Choice, MappingRule) -from caster.asynch.mouse import grids -from caster.lib import control -from caster.lib import settings -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R -from caster.lib.context import AppContext +from castervoice.asynch.mouse import grids +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R +from castervoice.lib.context import AppContext _NEXUS = control.nexus() diff --git a/caster/apps/jetbrains.py b/castervoice/apps/jetbrains.py similarity index 90% rename from caster/apps/jetbrains.py rename to castervoice/apps/jetbrains.py index bb5b1c413..7dc236aa0 100644 --- a/caster/apps/jetbrains.py +++ b/castervoice/apps/jetbrains.py @@ -1,13 +1,13 @@ from dragonfly import (Grammar, Dictation) -from caster.lib import control -from caster.lib import settings -from caster.lib.actions import Key -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.actions import Key +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class JetbrainsRule(MergeRule): diff --git a/caster/apps/kdiff3.py b/castervoice/apps/kdiff3.py similarity index 67% rename from caster/apps/kdiff3.py rename to castervoice/apps/kdiff3.py index adc909025..afd51cbc4 100644 --- a/caster/apps/kdiff3.py +++ b/castervoice/apps/kdiff3.py @@ -1,13 +1,13 @@ from dragonfly import (Grammar, Dictation) -from caster.lib import control -from caster.lib import settings -from caster.lib.actions import Key -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.actions import Key +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class KDiff3Rule(MergeRule): diff --git a/caster/apps/lyx.py b/castervoice/apps/lyx.py similarity index 86% rename from caster/apps/lyx.py rename to castervoice/apps/lyx.py index 478ab4cbb..fb8485fc1 100644 --- a/caster/apps/lyx.py +++ b/castervoice/apps/lyx.py @@ -3,13 +3,13 @@ from dragonfly import (Grammar, Context, Dictation, Repeat, Function, Choice) -from caster.lib import control, settings -from caster.lib.actions import Key, Text -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control, settings +from castervoice.lib.actions import Key, Text +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class LyxRule(MergeRule): diff --git a/caster/apps/msvc.py b/castervoice/apps/msvc.py similarity index 87% rename from caster/apps/msvc.py rename to castervoice/apps/msvc.py index 78bfac267..3fa99ef9a 100644 --- a/caster/apps/msvc.py +++ b/castervoice/apps/msvc.py @@ -11,14 +11,14 @@ from dragonfly import (Grammar, Dictation, Repeat) -from caster.lib import control -from caster.lib import settings -from caster.lib.actions import Key, Text -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.actions import Key, Text +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class MSVCRule(MergeRule): diff --git a/caster/apps/notepadplusplus.py b/castervoice/apps/notepadplusplus.py similarity index 80% rename from caster/apps/notepadplusplus.py rename to castervoice/apps/notepadplusplus.py index 80a375a0c..296ff7183 100644 --- a/caster/apps/notepadplusplus.py +++ b/castervoice/apps/notepadplusplus.py @@ -11,14 +11,14 @@ from dragonfly import (Grammar, Dictation, Repeat) -from caster.lib import control -from caster.lib import settings -from caster.lib.actions import Key, Mouse -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.actions import Key, Mouse +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class NPPRule(MergeRule): diff --git a/caster/apps/rstudio.py b/castervoice/apps/rstudio.py similarity index 86% rename from caster/apps/rstudio.py rename to castervoice/apps/rstudio.py index 09a8d1ff0..f03b1176a 100644 --- a/caster/apps/rstudio.py +++ b/castervoice/apps/rstudio.py @@ -5,13 +5,13 @@ from dragonfly import (Dictation, Grammar, IntegerRef, MappingRule, Pause, Repeat, Mimic) -from caster.lib import control, settings -from caster.lib.actions import Key, Text -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control, settings +from castervoice.lib.actions import Key, Text +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class RStudioRule(MergeRule): pronunciation = "are studio" diff --git a/caster/apps/sqldeveloper.py b/castervoice/apps/sqldeveloper.py similarity index 77% rename from caster/apps/sqldeveloper.py rename to castervoice/apps/sqldeveloper.py index 30e2c3d3c..ba37f58a2 100644 --- a/caster/apps/sqldeveloper.py +++ b/castervoice/apps/sqldeveloper.py @@ -11,14 +11,14 @@ from dragonfly import (Grammar, Dictation) -from caster.lib import control -from caster.lib import settings -from caster.lib.actions import Key -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.actions import Key +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class SQLDeveloperRule(MergeRule): diff --git a/caster/apps/ssms.py b/castervoice/apps/ssms.py similarity index 86% rename from caster/apps/ssms.py rename to castervoice/apps/ssms.py index 229a694eb..daf48f34b 100644 --- a/caster/apps/ssms.py +++ b/castervoice/apps/ssms.py @@ -1,13 +1,13 @@ from dragonfly import (Grammar, Dictation, Repeat) -from caster.lib import control -from caster.lib import settings -from caster.lib.actions import Key -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.actions import Key +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class SSMSRule(MergeRule): diff --git a/caster/apps/sublime.py b/castervoice/apps/sublime.py similarity index 94% rename from caster/apps/sublime.py rename to castervoice/apps/sublime.py index d41f7cce3..8e1846368 100644 --- a/caster/apps/sublime.py +++ b/castervoice/apps/sublime.py @@ -1,13 +1,13 @@ from dragonfly import (Choice, Dictation, Grammar, Repeat) -from caster.lib import control -from caster.lib import settings -from caster.lib.actions import Key, Text -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.actions import Key, Text +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class SublimeRule(MergeRule): diff --git a/caster/apps/totalcmd.py b/castervoice/apps/totalcmd.py similarity index 91% rename from caster/apps/totalcmd.py rename to castervoice/apps/totalcmd.py index 65c7b2d76..b6046d424 100644 --- a/caster/apps/totalcmd.py +++ b/castervoice/apps/totalcmd.py @@ -1,13 +1,13 @@ from dragonfly import (Grammar, Dictation, Repeat) -from caster.lib import control -from caster.lib import settings -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R -from caster.lib.context import AppContext -from caster.lib.actions import Key +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R +from castervoice.lib.context import AppContext +from castervoice.lib.actions import Key class TotalCommanderRule (MergeRule): diff --git a/caster/apps/visualstudio.py b/castervoice/apps/visualstudio.py similarity index 92% rename from caster/apps/visualstudio.py rename to castervoice/apps/visualstudio.py index bd2288826..1f9d6a86c 100644 --- a/caster/apps/visualstudio.py +++ b/castervoice/apps/visualstudio.py @@ -1,13 +1,13 @@ from dragonfly import (Grammar, Dictation, Repeat) -from caster.lib import control -from caster.lib import settings -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R -from caster.lib.context import AppContext -from caster.lib.actions import (Key, Text) +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R +from castervoice.lib.context import AppContext +from castervoice.lib.actions import (Key, Text) class VisualStudioRule(MergeRule): diff --git a/caster/apps/vscode.py b/castervoice/apps/vscode.py similarity index 93% rename from caster/apps/vscode.py rename to castervoice/apps/vscode.py index 99fd16c0a..1fcedd264 100644 --- a/caster/apps/vscode.py +++ b/castervoice/apps/vscode.py @@ -1,13 +1,13 @@ from dragonfly import (Grammar, Dictation, Repeat, Function) -from caster.lib import control -from caster.lib import settings -from caster.lib.actions import Key, Text -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.actions import Key, Text +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R def findNthToken(text, n, direction): diff --git a/caster/apps/winword.py b/castervoice/apps/winword.py similarity index 74% rename from caster/apps/winword.py rename to castervoice/apps/winword.py index 4453f98ab..b374b525a 100644 --- a/caster/apps/winword.py +++ b/castervoice/apps/winword.py @@ -11,14 +11,14 @@ from dragonfly import (Grammar, MappingRule, Dictation) -from caster.lib import control -from caster.lib import settings -from caster.lib.actions import Key -from caster.lib.context import AppContext -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib import settings +from castervoice.lib.actions import Key +from castervoice.lib.context import AppContext +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class MSWordRule(MergeRule): diff --git a/caster/apps/wsr.py b/castervoice/apps/wsr.py similarity index 75% rename from caster/apps/wsr.py rename to castervoice/apps/wsr.py index 725321361..d504ad521 100644 --- a/caster/apps/wsr.py +++ b/castervoice/apps/wsr.py @@ -1,9 +1,9 @@ from dragonfly import (Grammar, Function) -from caster.lib import utilities, settings -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import utilities, settings +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class WindowsSpeechRecognitionRule(MergeRule): diff --git a/caster/asynch/__init__.py b/castervoice/asynch/__init__.py similarity index 100% rename from caster/asynch/__init__.py rename to castervoice/asynch/__init__.py diff --git a/caster/asynch/_hmc.py b/castervoice/asynch/_hmc.py similarity index 91% rename from caster/asynch/_hmc.py rename to castervoice/asynch/_hmc.py index 6a011a4f5..2d15ca384 100644 --- a/caster/asynch/_hmc.py +++ b/castervoice/asynch/_hmc.py @@ -1,14 +1,14 @@ from dragonfly import (Function, Grammar, AppContext) -from caster.asynch.hmc import h_launch -from caster.lib import control -from caster.lib import settings, utilities -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.actions import AsynchronousAction -from caster.lib.dfplus.state.short import R, L, S -from caster.lib.context import AppContext +from castervoice.asynch.hmc import h_launch +from castervoice.lib import control +from castervoice.lib import settings, utilities +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.actions import AsynchronousAction +from castervoice.lib.dfplus.state.short import R, L, S +from castervoice.lib.context import AppContext _NEXUS = control.nexus() diff --git a/caster/__init__.py b/castervoice/asynch/hmc/__init__.py similarity index 100% rename from caster/__init__.py rename to castervoice/asynch/hmc/__init__.py diff --git a/caster/asynch/hmc/h_launch.py b/castervoice/asynch/hmc/h_launch.py similarity index 88% rename from caster/asynch/hmc/h_launch.py rename to castervoice/asynch/hmc/h_launch.py index f87cb529d..ecbe6dbbe 100644 --- a/caster/asynch/hmc/h_launch.py +++ b/castervoice/asynch/hmc/h_launch.py @@ -2,15 +2,15 @@ import sys, os try: # Style C -- may be imported into Caster, or externally - BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "caster", 1)[0] + BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "castervoice", 1)[0] if BASE_PATH not in sys.path: sys.path.append(BASE_PATH) finally: - from caster.asynch.hmc.hmc_ask_directory import HomunculusDirectory - from caster.asynch.hmc.hmc_recording import HomunculusRecording - from caster.asynch.hmc.hmc_confirm import HomunculusConfirm - from caster.asynch.hmc.homunculus import Homunculus - from caster.lib import settings + from castervoice.asynch.hmc.hmc_ask_directory import HomunculusDirectory + from castervoice.asynch.hmc.hmc_recording import HomunculusRecording + from castervoice.asynch.hmc.hmc_confirm import HomunculusConfirm + from castervoice.asynch.hmc.homunculus import Homunculus + from castervoice.lib import settings ''' To add a new homunculus (pop-up ui window) type: (1) create the module diff --git a/caster/asynch/hmc/hmc_ask_directory.py b/castervoice/asynch/hmc/hmc_ask_directory.py similarity index 93% rename from caster/asynch/hmc/hmc_ask_directory.py rename to castervoice/asynch/hmc/hmc_ask_directory.py index 2f4faaa3c..89bfc856c 100644 --- a/caster/asynch/hmc/hmc_ask_directory.py +++ b/castervoice/asynch/hmc/hmc_ask_directory.py @@ -5,12 +5,12 @@ import tkFileDialog try: # Style C -- may be imported into Caster, or externally - BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "caster", 1)[0] + BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "castervoice", 1)[0] if BASE_PATH not in sys.path: sys.path.append(BASE_PATH) finally: - from caster.lib import settings - from caster.asynch.hmc.homunculus import Homunculus + from castervoice.lib import settings + from castervoice.asynch.hmc.homunculus import Homunculus class HomunculusDirectory(Homunculus): diff --git a/caster/asynch/hmc/hmc_confirm.py b/castervoice/asynch/hmc/hmc_confirm.py similarity index 91% rename from caster/asynch/hmc/hmc_confirm.py rename to castervoice/asynch/hmc/hmc_confirm.py index e72856c96..832e10119 100644 --- a/caster/asynch/hmc/hmc_confirm.py +++ b/castervoice/asynch/hmc/hmc_confirm.py @@ -4,12 +4,12 @@ from threading import Timer try: # Style C -- may be imported into Caster, or externally - BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "caster", 1)[0] + BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "castervoice", 1)[0] if BASE_PATH not in sys.path: sys.path.append(BASE_PATH) finally: - from caster.lib import settings - from caster.asynch.hmc.homunculus import Homunculus + from castervoice.lib import settings + from castervoice.asynch.hmc.homunculus import Homunculus class HomunculusConfirm(Homunculus): diff --git a/caster/asynch/hmc/hmc_recording.py b/castervoice/asynch/hmc/hmc_recording.py similarity index 97% rename from caster/asynch/hmc/hmc_recording.py rename to castervoice/asynch/hmc/hmc_recording.py index 372ff05f8..9175f0b93 100644 --- a/caster/asynch/hmc/hmc_recording.py +++ b/castervoice/asynch/hmc/hmc_recording.py @@ -5,12 +5,12 @@ import Tkinter as tk try: # Style C -- may be imported into Caster, or externally - BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "caster", 1)[0] + BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "castervoice", 1)[0] if BASE_PATH not in sys.path: sys.path.append(BASE_PATH) finally: - from caster.lib import settings - from caster.asynch.hmc.homunculus import Homunculus + from castervoice.lib import settings + from castervoice.asynch.hmc.homunculus import Homunculus class HomunculusRecording(Homunculus): diff --git a/caster/asynch/hmc/homunculus.py b/castervoice/asynch/hmc/homunculus.py similarity index 96% rename from caster/asynch/hmc/homunculus.py rename to castervoice/asynch/hmc/homunculus.py index 6b021cfb0..2dac1876c 100644 --- a/caster/asynch/hmc/homunculus.py +++ b/castervoice/asynch/hmc/homunculus.py @@ -7,12 +7,12 @@ import Tkinter as tk try: # Style C -- may be imported into Caster, or externally - BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "caster", 1)[0] + BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "castervoice", 1)[0] if BASE_PATH not in sys.path: sys.path.append(BASE_PATH) finally: - from caster.lib import settings - from caster.lib.dfplus.communication import Communicator + from castervoice.lib import settings + from castervoice.lib.dfplus.communication import Communicator class Homunculus(tk.Tk): diff --git a/caster/asynch/hmc/__init__.py b/castervoice/asynch/mouse/__init__.py similarity index 100% rename from caster/asynch/hmc/__init__.py rename to castervoice/asynch/mouse/__init__.py diff --git a/caster/asynch/mouse/grids.py b/castervoice/asynch/mouse/grids.py similarity index 98% rename from caster/asynch/mouse/grids.py rename to castervoice/asynch/mouse/grids.py index eccf56006..1b292b940 100644 --- a/caster/asynch/mouse/grids.py +++ b/castervoice/asynch/mouse/grids.py @@ -15,12 +15,12 @@ from dragonfly import monitors try: # Style C -- may be imported into Caster, or externally - BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "caster", 1)[0] + BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "castervoice", 1)[0] if BASE_PATH not in sys.path: sys.path.append(BASE_PATH) finally: - from caster.lib import settings, utilities - from caster.lib.dfplus.communication import Communicator + from castervoice.lib import settings, utilities + from castervoice.lib.dfplus.communication import Communicator try: from PIL import ImageGrab, ImageTk, ImageDraw, ImageFont diff --git a/caster/asynch/mouse/legion.py b/castervoice/asynch/mouse/legion.py similarity index 98% rename from caster/asynch/mouse/legion.py rename to castervoice/asynch/mouse/legion.py index b5d856d84..45e8d24b7 100644 --- a/caster/asynch/mouse/legion.py +++ b/castervoice/asynch/mouse/legion.py @@ -9,12 +9,12 @@ #from dragonfly import monitors try: # Style C -- may be imported into Caster, or externally - BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "caster", 1)[0] + BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "castervoice", 1)[0] if BASE_PATH not in sys.path: sys.path.append(BASE_PATH) finally: - from caster.asynch.mouse.grids import TkTransparent, Dimensions - from caster.lib import gdi, settings, utilities + from castervoice.asynch.mouse.grids import TkTransparent, Dimensions + from castervoice.lib import gdi, settings, utilities try: from PIL import ImageGrab, ImageFilter, Image diff --git a/caster/asynch/settingswindow.py b/castervoice/asynch/settingswindow.py similarity index 98% rename from caster/asynch/settingswindow.py rename to castervoice/asynch/settingswindow.py index 4ef06f17d..a68ff3e4c 100644 --- a/caster/asynch/settingswindow.py +++ b/castervoice/asynch/settingswindow.py @@ -12,12 +12,12 @@ from wx.lib.scrolledpanel import ScrolledPanel try: # Style C -- may be imported into Caster, or externally - BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "caster", 1)[0] + BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "castervoice", 1)[0] if BASE_PATH not in sys.path: sys.path.append(BASE_PATH) finally: - from caster.lib import settings - from caster.lib.dfplus.communication import Communicator + from castervoice.lib import settings + from castervoice.lib.dfplus.communication import Communicator DICT_SETTING = 1 STRING_SETTING = 2 diff --git a/caster/asynch/mouse/__init__.py b/castervoice/asynch/sikuli/__init__.py similarity index 100% rename from caster/asynch/mouse/__init__.py rename to castervoice/asynch/sikuli/__init__.py diff --git a/caster/asynch/sikuli/scripts/xmlrpc_server.sikuli/xmlrpc_server.html b/castervoice/asynch/sikuli/server/xmlrpc_server.sikuli/xmlrpc_server.html similarity index 100% rename from caster/asynch/sikuli/scripts/xmlrpc_server.sikuli/xmlrpc_server.html rename to castervoice/asynch/sikuli/server/xmlrpc_server.sikuli/xmlrpc_server.html diff --git a/caster/asynch/sikuli/scripts/xmlrpc_server.sikuli/xmlrpc_server.py b/castervoice/asynch/sikuli/server/xmlrpc_server.sikuli/xmlrpc_server.py similarity index 67% rename from caster/asynch/sikuli/scripts/xmlrpc_server.sikuli/xmlrpc_server.py rename to castervoice/asynch/sikuli/server/xmlrpc_server.sikuli/xmlrpc_server.py index dfd7c35a6..c5cc32c30 100644 --- a/caster/asynch/sikuli/scripts/xmlrpc_server.sikuli/xmlrpc_server.py +++ b/castervoice/asynch/sikuli/server/xmlrpc_server.sikuli/xmlrpc_server.py @@ -3,54 +3,53 @@ import sys from inspect import getmembers, isfunction -SCRIPTS_PATH = sys.argv[0].split("\\xmlrpc_server.sikuli")[0] -BASE_PATH = sys.argv[0].split("MacroSystem")[0] + "MacroSystem" - modules = [] server = SimpleXMLRPCServer(("127.0.0.1", 8000), allow_none=True) quit = 0 +SCRIPTS_PATH = sys.argv[1] def ping(): return 1 - def list_functions(): global modules return modules - def terminate(): global quit quit = 1 return 1 - server.register_function(list_functions, "list_functions") server.register_function(terminate, "terminate") +print("\nCaster Sikuli Bridge [started]\n") +print(" Loading commands from: {} ...".format(SCRIPTS_PATH)) + if SCRIPTS_PATH not in sys.path: sys.path.append(SCRIPTS_PATH) for s in [x[0] for x in os.walk(SCRIPTS_PATH)]: if s.endswith(".sikuli") and not s.endswith("xmlrpc_server.sikuli"): - mdl_name = s.split(".")[0].split("\\")[-1] - exec ("import " + mdl_name) - exec ("l = getmembers(" + mdl_name + ", isfunction)") + mdl_name = s.split(".sikuli")[0].split("\\")[-1] + exec("import " + mdl_name) + exec("l = getmembers(" + mdl_name + ", isfunction)") for d in l: if d[0].startswith("export_"): registered_function_name = mdl_name + "_" + d[0].replace("export_", "") modules.append(registered_function_name) - exec ("server.register_function(" + mdl_name + "." + d[0] + ", '" + + exec("server.register_function(" + mdl_name + "." + d[0] + ", '" + registered_function_name + "')") -print("Caster Sikuli Bridge\n\nlist of available commands " + str(modules)) - +print(" Loaded. Available commands:\n") +for fn_name in modules: + print(" {}".format(str(fn_name).replace("_", " "))) +print("") # examples def add(self, x, y): return x + y - try: while not quit: server.handle_request() diff --git a/caster/asynch/sikuli/sikuli.py b/castervoice/asynch/sikuli/sikuli.py similarity index 63% rename from caster/asynch/sikuli/sikuli.py rename to castervoice/asynch/sikuli/sikuli.py index 3abbd96a0..4c8e09531 100644 --- a/caster/asynch/sikuli/sikuli.py +++ b/castervoice/asynch/sikuli/sikuli.py @@ -3,11 +3,11 @@ from dragonfly import (Grammar, MappingRule, Function) -from caster.lib import control -from caster.lib import settings, utilities -from caster.lib.actions import Key -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib import control +from castervoice.lib import settings, utilities +from castervoice.lib.actions import Key +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergerule import MergeRule grammar = None server_proxy = None @@ -15,18 +15,31 @@ def launch_IDE(): - Popen([ - settings.SETTINGS["paths"]["SIKULI_COMPATIBLE_JAVA_EXE_PATH"], "-jar", - settings.SETTINGS["paths"]["SIKULI_IDE_JAR_PATH"] - ]) + ide_path = settings.SETTINGS["paths"]["SIKULI_IDE"] + if ide_path == "": + print("No 'SIKULI_IDE' path is available. Did you configure it in " + settings.get_filename()) + else: + Popen(["java", "-jar", ide_path]) def launch_server(): - Popen([ - settings.SETTINGS["paths"]["SIKULI_COMPATIBLE_JAVA_EXE_PATH"], "-jar", - settings.SETTINGS["paths"]["SIKULI_SCRIPTS_JAR_PATH"], "-r", - settings.SETTINGS["paths"]["SIKULI_SERVER_PATH"] - ]) + runner_path = settings.SETTINGS["paths"]["SIKULI_RUNNER"] + if runner_path == "": + print("No 'SIKULI_RUNNER' path is available. Did you configure it in " + settings.get_filename()) + else: + command = [] if settings.SETTINGS["sikuli"]["version"] == "1.1.3" else ["java", "-jar"] + command.extend([ + settings.SETTINGS["paths"]["SIKULI_RUNNER"], + "-r", settings.SETTINGS["paths"]["SIKULI_SERVER_PATH"], + "--args", settings.SETTINGS["paths"]["SIKULI_SCRIPTS_PATH"] + ]) + Popen(command) +# +# Popen([ +# settings.SETTINGS["paths"]["SIKULI_COMPATIBLE_JAVA_EXE_PATH"], "-jar", +# settings.SETTINGS["paths"]["SIKULI_SCRIPTS_JAR_PATH"], "-r", +# settings.SETTINGS["paths"]["SIKULI_SERVER_PATH"] +# ]) # @@ -112,5 +125,5 @@ def refresh_sick_command(): control.nexus().timer.add_callback(server_proxy_timer_fn, seconds5) -if settings.SETTINGS["miscellaneous"]["sikuli_enabled"]: +if settings.SETTINGS["sikuli"]["enabled"]: refresh(_NEXUS) diff --git a/caster/bin/data/configdebug.txt b/castervoice/bin/data/configdebug.txt similarity index 100% rename from caster/bin/data/configdebug.txt rename to castervoice/bin/data/configdebug.txt diff --git a/caster/bin/reboot.bat b/castervoice/bin/reboot.bat similarity index 100% rename from caster/bin/reboot.bat rename to castervoice/bin/reboot.bat diff --git a/caster/bin/reboot_wsr.bat b/castervoice/bin/reboot_wsr.bat similarity index 100% rename from caster/bin/reboot_wsr.bat rename to castervoice/bin/reboot_wsr.bat diff --git a/caster/bin/share/bringme.toml.defaults b/castervoice/bin/share/bringme.toml.defaults similarity index 100% rename from caster/bin/share/bringme.toml.defaults rename to castervoice/bin/share/bringme.toml.defaults diff --git a/caster/doc/Contributing.md b/castervoice/doc/Contributing.md similarity index 100% rename from caster/doc/Contributing.md rename to castervoice/doc/Contributing.md diff --git a/caster/doc/Installation.md b/castervoice/doc/Installation.md similarity index 100% rename from caster/doc/Installation.md rename to castervoice/doc/Installation.md diff --git a/caster/doc/caster_quick_reference.tex b/castervoice/doc/caster_quick_reference.tex similarity index 100% rename from caster/doc/caster_quick_reference.tex rename to castervoice/doc/caster_quick_reference.tex diff --git a/caster/doc/img/noderule1.png b/castervoice/doc/img/noderule1.png similarity index 100% rename from caster/doc/img/noderule1.png rename to castervoice/doc/img/noderule1.png diff --git a/caster/doc/img/noderule2.png b/castervoice/doc/img/noderule2.png similarity index 100% rename from caster/doc/img/noderule2.png rename to castervoice/doc/img/noderule2.png diff --git a/caster/doc/img/terminology.png b/castervoice/doc/img/terminology.png similarity index 100% rename from caster/doc/img/terminology.png rename to castervoice/doc/img/terminology.png diff --git a/caster/doc/readthedocs/Aenea.md b/castervoice/doc/readthedocs/Aenea.md similarity index 100% rename from caster/doc/readthedocs/Aenea.md rename to castervoice/doc/readthedocs/Aenea.md diff --git a/caster/doc/readthedocs/Alias.md b/castervoice/doc/readthedocs/Alias.md similarity index 100% rename from caster/doc/readthedocs/Alias.md rename to castervoice/doc/readthedocs/Alias.md diff --git a/caster/doc/readthedocs/Application Commands Quick Reference.md b/castervoice/doc/readthedocs/Application Commands Quick Reference.md similarity index 100% rename from caster/doc/readthedocs/Application Commands Quick Reference.md rename to castervoice/doc/readthedocs/Application Commands Quick Reference.md diff --git a/caster/doc/readthedocs/Auto CCR and Cmd-Mode.md b/castervoice/doc/readthedocs/Auto CCR and Cmd-Mode.md similarity index 100% rename from caster/doc/readthedocs/Auto CCR and Cmd-Mode.md rename to castervoice/doc/readthedocs/Auto CCR and Cmd-Mode.md diff --git a/caster/doc/readthedocs/CCR languages Quick Reference.md b/castervoice/doc/readthedocs/CCR languages Quick Reference.md similarity index 100% rename from caster/doc/readthedocs/CCR languages Quick Reference.md rename to castervoice/doc/readthedocs/CCR languages Quick Reference.md diff --git a/caster/doc/readthedocs/CCR.md b/castervoice/doc/readthedocs/CCR.md similarity index 100% rename from caster/doc/readthedocs/CCR.md rename to castervoice/doc/readthedocs/CCR.md diff --git a/caster/doc/readthedocs/ContextStack.md b/castervoice/doc/readthedocs/ContextStack.md similarity index 100% rename from caster/doc/readthedocs/ContextStack.md rename to castervoice/doc/readthedocs/ContextStack.md diff --git a/caster/doc/readthedocs/Examples/How to Speak Code.md b/castervoice/doc/readthedocs/Examples/How to Speak Code.md similarity index 100% rename from caster/doc/readthedocs/Examples/How to Speak Code.md rename to castervoice/doc/readthedocs/Examples/How to Speak Code.md diff --git a/caster/doc/readthedocs/Examples/Rule Construction.md b/castervoice/doc/readthedocs/Examples/Rule Construction.md similarity index 100% rename from caster/doc/readthedocs/Examples/Rule Construction.md rename to castervoice/doc/readthedocs/Examples/Rule Construction.md diff --git a/caster/doc/readthedocs/Examples/Speaking/Examples.md b/castervoice/doc/readthedocs/Examples/Speaking/Examples.md similarity index 100% rename from caster/doc/readthedocs/Examples/Speaking/Examples.md rename to castervoice/doc/readthedocs/Examples/Speaking/Examples.md diff --git a/caster/doc/readthedocs/Examples/rules/Caster Rules.md b/castervoice/doc/readthedocs/Examples/rules/Caster Rules.md similarity index 100% rename from caster/doc/readthedocs/Examples/rules/Caster Rules.md rename to castervoice/doc/readthedocs/Examples/rules/Caster Rules.md diff --git a/caster/doc/readthedocs/Examples/rules/Dragonfly Rules.md b/castervoice/doc/readthedocs/Examples/rules/Dragonfly Rules.md similarity index 100% rename from caster/doc/readthedocs/Examples/rules/Dragonfly Rules.md rename to castervoice/doc/readthedocs/Examples/rules/Dragonfly Rules.md diff --git a/caster/doc/readthedocs/Examples/rules/Old Sample File.md b/castervoice/doc/readthedocs/Examples/rules/Old Sample File.md similarity index 100% rename from caster/doc/readthedocs/Examples/rules/Old Sample File.md rename to castervoice/doc/readthedocs/Examples/rules/Old Sample File.md diff --git a/caster/doc/readthedocs/Mouse.md b/castervoice/doc/readthedocs/Mouse.md similarity index 100% rename from caster/doc/readthedocs/Mouse.md rename to castervoice/doc/readthedocs/Mouse.md diff --git a/caster/doc/readthedocs/NodeRule.md b/castervoice/doc/readthedocs/NodeRule.md similarity index 100% rename from caster/doc/readthedocs/NodeRule.md rename to castervoice/doc/readthedocs/NodeRule.md diff --git a/caster/doc/readthedocs/Record Macros.md b/castervoice/doc/readthedocs/Record Macros.md similarity index 100% rename from caster/doc/readthedocs/Record Macros.md rename to castervoice/doc/readthedocs/Record Macros.md diff --git a/caster/doc/readthedocs/Setup.md b/castervoice/doc/readthedocs/Setup.md similarity index 100% rename from caster/doc/readthedocs/Setup.md rename to castervoice/doc/readthedocs/Setup.md diff --git a/castervoice/doc/readthedocs/Sikuli.md b/castervoice/doc/readthedocs/Sikuli.md new file mode 100644 index 000000000..d6adfac08 --- /dev/null +++ b/castervoice/doc/readthedocs/Sikuli.md @@ -0,0 +1,50 @@ +# Sikuli Integration + +[This is Sikuli](http://www.sikuli.org). It's awesome, and you can use Caster to launch Sikuli actions by voice. + +## Versions + +At time of writing, Sikuli [1.1.3 is no longer supported](https://raiman.github.io/SikuliX1/downloads.html), but [1.1.4 is not yet released](https://launchpad.net/sikuli/sikulix). So pick your version. Caster currently supports both. + +## Setup + +### 1.1.3 + +- install Java 8+, make sure it's on your path with: +``` + java -version +``` +- download sikulixsetup-1.1.3.jar +- run it, choose option 1 +- fill out settings: +``` + paths.SIKULI_IDE = "full/path/to/sikulix.jar" + paths.SIKULI_RUNNER = "full/path/to/runsikulix.cmd" + sikuli.version = "1.1.3" + sikuli.enabled: true +``` +- make commands with filename/"exports" convention as per the video + +### 1.1.4: +- install Java 8+, make sure it's on your path with: +``` + java -version +``` +- download sikulix.jar, jython-standalone-2.7.1.jar +- place the two jars next to each other +- fill out settings: +``` + paths.SIKULI_IDE = "full/path/to/sikulix.jar" + paths.SIKULI_RUNNER = "full/path/to/sikulix.jar" + sikuli.version = "1.1.4" + sikuli.enabled = true +``` +- make commands with filename/"exports" convention as per the video + +## Script Creation Conventions + +This video is out of date in terms of the Sikuli setup and config options. It is still up to date for the filename/exports convention described toward the end of the video though. + +[YouTube](https://youtu.be/RFdsD2OgDzk?list=PLV6JPhkq1x8LHu02YefhUU9rXiB2PK8tc) + + diff --git a/caster/doc/readthedocs/Taxonomy of a Rule.md b/castervoice/doc/readthedocs/Taxonomy of a Rule.md similarity index 100% rename from caster/doc/readthedocs/Taxonomy of a Rule.md rename to castervoice/doc/readthedocs/Taxonomy of a Rule.md diff --git a/caster/doc/readthedocs/Voice Index.md b/castervoice/doc/readthedocs/Voice Index.md similarity index 100% rename from caster/doc/readthedocs/Voice Index.md rename to castervoice/doc/readthedocs/Voice Index.md diff --git a/caster/doc/readthedocs/Windows Speech Recognition.md b/castervoice/doc/readthedocs/Windows Speech Recognition.md similarity index 100% rename from caster/doc/readthedocs/Windows Speech Recognition.md rename to castervoice/doc/readthedocs/Windows Speech Recognition.md diff --git a/caster/doc/readthedocs/meta/Undocumented Features.md b/castervoice/doc/readthedocs/meta/Undocumented Features.md similarity index 100% rename from caster/doc/readthedocs/meta/Undocumented Features.md rename to castervoice/doc/readthedocs/meta/Undocumented Features.md diff --git a/caster/asynch/sikuli/__init__.py b/castervoice/lib/__init__.py similarity index 100% rename from caster/asynch/sikuli/__init__.py rename to castervoice/lib/__init__.py diff --git a/caster/lib/actions.py b/castervoice/lib/actions.py similarity index 90% rename from caster/lib/actions.py rename to castervoice/lib/actions.py index 4373e21d0..7f1e4bd20 100644 --- a/caster/lib/actions.py +++ b/castervoice/lib/actions.py @@ -1,6 +1,6 @@ from dragonfly import Key, Text, Mouse -from caster.lib import settings +from castervoice.lib import settings # Override imported dragonfly actions with aenea's if the 'use_aenea' setting # is set to true. diff --git a/caster/lib/alphanumeric.py b/castervoice/lib/alphanumeric.py similarity index 97% rename from caster/lib/alphanumeric.py rename to castervoice/lib/alphanumeric.py index 7ce68e51e..fd954b988 100644 --- a/caster/lib/alphanumeric.py +++ b/castervoice/lib/alphanumeric.py @@ -1,7 +1,7 @@ from dragonfly import Choice -from caster.lib import settings -from caster.lib.actions import Key, Text +from castervoice.lib import settings +from castervoice.lib.actions import Key, Text def get_alphabet_choice(spec): diff --git a/caster/lib/ccr/__init__.py b/castervoice/lib/ccr/__init__.py similarity index 97% rename from caster/lib/ccr/__init__.py rename to castervoice/lib/ccr/__init__.py index e57023ff6..1d7d0af9b 100644 --- a/caster/lib/ccr/__init__.py +++ b/castervoice/lib/ccr/__init__.py @@ -1,6 +1,6 @@ # new modules should be added in the dictionary # the tuple contains the rules which will be imported -from caster.lib import utilities +from castervoice.lib import utilities command_sets = { "bash.bash": ("Bash", ), diff --git a/caster/lib/__init__.py b/castervoice/lib/ccr/bash/__init__.py similarity index 100% rename from caster/lib/__init__.py rename to castervoice/lib/ccr/bash/__init__.py diff --git a/caster/lib/ccr/bash/bash.py b/castervoice/lib/ccr/bash/bash.py similarity index 93% rename from caster/lib/ccr/bash/bash.py rename to castervoice/lib/ccr/bash/bash.py index 32afabe24..96dcc1c2d 100644 --- a/caster/lib/ccr/bash/bash.py +++ b/castervoice/lib/ccr/bash/bash.py @@ -4,11 +4,11 @@ @author: synkarius ''' -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.ccr.standard import SymbolSpecs -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.ccr.standard import SymbolSpecs +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class Bash(MergeRule): diff --git a/caster/lib/ccr/bash/__init__.py b/castervoice/lib/ccr/core/__init__.py similarity index 100% rename from caster/lib/ccr/bash/__init__.py rename to castervoice/lib/ccr/core/__init__.py diff --git a/caster/lib/ccr/core/alphabet.py b/castervoice/lib/ccr/core/alphabet.py similarity index 69% rename from caster/lib/ccr/core/alphabet.py rename to castervoice/lib/ccr/core/alphabet.py index 48ab646bd..2dd88989b 100644 --- a/caster/lib/ccr/core/alphabet.py +++ b/castervoice/lib/ccr/core/alphabet.py @@ -1,9 +1,9 @@ from dragonfly import Function, Choice -from caster.lib import control, alphanumeric -from caster.lib.dfplus.merge.ccrmerger import CCRMerger -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control, alphanumeric +from castervoice.lib.dfplus.merge.ccrmerger import CCRMerger +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class Alphabet(MergeRule): diff --git a/caster/lib/ccr/core/nav.py b/castervoice/lib/ccr/core/nav.py similarity index 94% rename from caster/lib/ccr/core/nav.py rename to castervoice/lib/ccr/core/nav.py index cb6e38176..7fa598aa9 100644 --- a/caster/lib/ccr/core/nav.py +++ b/castervoice/lib/ccr/core/nav.py @@ -5,17 +5,17 @@ ''' from dragonfly import Repeat, Function, Dictation, Choice, MappingRule -from caster.lib import context, navigation, alphanumeric, textformat, text_utils -from caster.lib import control -from caster.lib.actions import Key, Mouse -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge.ccrmerger import CCRMerger -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.actions import AsynchronousAction, ContextSeeker -from caster.lib.dfplus.state.actions2 import UntilCancelled -from caster.lib.dfplus.state.short import L, S, R +from castervoice.lib import context, navigation, alphanumeric, textformat, text_utils +from castervoice.lib import control +from castervoice.lib.actions import Key, Mouse +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge.ccrmerger import CCRMerger +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.actions import AsynchronousAction, ContextSeeker +from castervoice.lib.dfplus.state.actions2 import UntilCancelled +from castervoice.lib.dfplus.state.short import L, S, R from dragonfly.actions.action_mimic import Mimic -from caster.lib.ccr.standard import SymbolSpecs +from castervoice.lib.ccr.standard import SymbolSpecs _NEXUS = control.nexus() @@ -229,7 +229,7 @@ class Navigation(MergeRule): # text formatting "set [] format ( | | ) (bow|bowel)": R(Function(textformat.set_text_format), rdescript="Set Text Format"), - "clear caster [] formatting": + "clear castervoice [] formatting": R(Function(textformat.clear_text_format), rdescript="Clear Caster Formatting"), "peek [] format": R(Function(textformat.peek_text_format), rdescript="Peek Format"), diff --git a/caster/lib/ccr/core/numbers.py b/castervoice/lib/ccr/core/numbers.py similarity index 66% rename from caster/lib/ccr/core/numbers.py rename to castervoice/lib/ccr/core/numbers.py index fdbd1a10b..b26b3976e 100644 --- a/caster/lib/ccr/core/numbers.py +++ b/castervoice/lib/ccr/core/numbers.py @@ -1,10 +1,10 @@ from dragonfly import Function -from caster.lib import control, alphanumeric -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge.ccrmerger import CCRMerger -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control, alphanumeric +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge.ccrmerger import CCRMerger +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class Numbers(MergeRule): diff --git a/caster/lib/ccr/core/punctuation.py b/castervoice/lib/ccr/core/punctuation.py similarity index 91% rename from caster/lib/ccr/core/punctuation.py rename to castervoice/lib/ccr/core/punctuation.py index d8d9607e0..3b53e2e13 100644 --- a/caster/lib/ccr/core/punctuation.py +++ b/castervoice/lib/ccr/core/punctuation.py @@ -1,11 +1,11 @@ from dragonfly import Choice, Repeat -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge.ccrmerger import CCRMerger -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge.ccrmerger import CCRMerger +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class Punctuation(MergeRule): diff --git a/caster/lib/ccr/core/__init__.py b/castervoice/lib/ccr/cpp/__init__.py similarity index 100% rename from caster/lib/ccr/core/__init__.py rename to castervoice/lib/ccr/cpp/__init__.py diff --git a/caster/lib/ccr/cpp/cpp.py b/castervoice/lib/ccr/cpp/cpp.py similarity index 95% rename from caster/lib/ccr/cpp/cpp.py rename to castervoice/lib/ccr/cpp/cpp.py index a95b5d84b..3e0e34f7b 100644 --- a/caster/lib/ccr/cpp/cpp.py +++ b/castervoice/lib/ccr/cpp/cpp.py @@ -5,11 +5,11 @@ ''' from dragonfly import Mimic -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.ccr.standard import SymbolSpecs -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.ccr.standard import SymbolSpecs +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class CPP(MergeRule): diff --git a/caster/lib/ccr/cpp/__init__.py b/castervoice/lib/ccr/csharp/__init__.py similarity index 100% rename from caster/lib/ccr/cpp/__init__.py rename to castervoice/lib/ccr/csharp/__init__.py diff --git a/caster/lib/ccr/csharp/csharp.py b/castervoice/lib/ccr/csharp/csharp.py similarity index 95% rename from caster/lib/ccr/csharp/csharp.py rename to castervoice/lib/ccr/csharp/csharp.py index 43c833294..f7af2b5d8 100644 --- a/caster/lib/ccr/csharp/csharp.py +++ b/castervoice/lib/ccr/csharp/csharp.py @@ -6,11 +6,11 @@ from dragonfly import Mimic -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.ccr.standard import SymbolSpecs -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.ccr.standard import SymbolSpecs +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class CSharp(MergeRule): diff --git a/caster/lib/ccr/csharp/__init__.py b/castervoice/lib/ccr/dart/__init__.py similarity index 100% rename from caster/lib/ccr/csharp/__init__.py rename to castervoice/lib/ccr/dart/__init__.py diff --git a/caster/lib/ccr/dart/dart.py b/castervoice/lib/ccr/dart/dart.py similarity index 94% rename from caster/lib/ccr/dart/dart.py rename to castervoice/lib/ccr/dart/dart.py index 5f928e671..8b8ff4070 100644 --- a/caster/lib/ccr/dart/dart.py +++ b/castervoice/lib/ccr/dart/dart.py @@ -4,11 +4,11 @@ @author: comodoro ''' -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.ccr.standard import SymbolSpecs -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.ccr.standard import SymbolSpecs +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class Dart(MergeRule): diff --git a/caster/lib/ccr/go/__init__.py b/castervoice/lib/ccr/go/__init__.py similarity index 100% rename from caster/lib/ccr/go/__init__.py rename to castervoice/lib/ccr/go/__init__.py diff --git a/caster/lib/ccr/go/go.py b/castervoice/lib/ccr/go/go.py similarity index 94% rename from caster/lib/ccr/go/go.py rename to castervoice/lib/ccr/go/go.py index 8b56d8193..6178a022c 100644 --- a/caster/lib/ccr/go/go.py +++ b/castervoice/lib/ccr/go/go.py @@ -5,10 +5,10 @@ ''' from dragonfly import Choice, Key, Text -from caster.lib import control -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R -from caster.lib.ccr.standard import SymbolSpecs +from castervoice.lib import control +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R +from castervoice.lib.ccr.standard import SymbolSpecs class Go(MergeRule): diff --git a/caster/lib/ccr/dart/__init__.py b/castervoice/lib/ccr/haxe/__init__.py similarity index 100% rename from caster/lib/ccr/dart/__init__.py rename to castervoice/lib/ccr/haxe/__init__.py diff --git a/caster/lib/ccr/haxe/haxe.py b/castervoice/lib/ccr/haxe/haxe.py similarity index 94% rename from caster/lib/ccr/haxe/haxe.py rename to castervoice/lib/ccr/haxe/haxe.py index 1c3d67a64..ca14bd2ba 100644 --- a/caster/lib/ccr/haxe/haxe.py +++ b/castervoice/lib/ccr/haxe/haxe.py @@ -1,8 +1,8 @@ -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.ccr.standard import SymbolSpecs -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.ccr.standard import SymbolSpecs +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class Haxe(MergeRule): diff --git a/caster/lib/ccr/haxe/__init__.py b/castervoice/lib/ccr/html/__init__.py similarity index 100% rename from caster/lib/ccr/haxe/__init__.py rename to castervoice/lib/ccr/html/__init__.py diff --git a/caster/lib/ccr/html/html.py b/castervoice/lib/ccr/html/html.py similarity index 98% rename from caster/lib/ccr/html/html.py rename to castervoice/lib/ccr/html/html.py index 64914a38b..e00f74a9c 100644 --- a/caster/lib/ccr/html/html.py +++ b/castervoice/lib/ccr/html/html.py @@ -1,7 +1,7 @@ -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.dfplus.merge.mergerule import MergeRule class HTML(MergeRule): diff --git a/caster/lib/ccr/html/__init__.py b/castervoice/lib/ccr/java/__init__.py similarity index 100% rename from caster/lib/ccr/html/__init__.py rename to castervoice/lib/ccr/java/__init__.py diff --git a/caster/lib/ccr/java/java.py b/castervoice/lib/ccr/java/java.py similarity index 96% rename from caster/lib/ccr/java/java.py rename to castervoice/lib/ccr/java/java.py index 5e677b975..8a4176a43 100644 --- a/caster/lib/ccr/java/java.py +++ b/castervoice/lib/ccr/java/java.py @@ -1,10 +1,10 @@ from dragonfly import Paste, MappingRule -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.ccr.standard import SymbolSpecs -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.ccr.standard import SymbolSpecs +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class JavaNon(MappingRule): diff --git a/caster/lib/ccr/java/__init__.py b/castervoice/lib/ccr/javascript/__init__.py similarity index 100% rename from caster/lib/ccr/java/__init__.py rename to castervoice/lib/ccr/javascript/__init__.py diff --git a/caster/lib/ccr/javascript/javascript.py b/castervoice/lib/ccr/javascript/javascript.py similarity index 94% rename from caster/lib/ccr/javascript/javascript.py rename to castervoice/lib/ccr/javascript/javascript.py index 76e423f11..a28f03ef1 100644 --- a/caster/lib/ccr/javascript/javascript.py +++ b/castervoice/lib/ccr/javascript/javascript.py @@ -3,12 +3,12 @@ @author: synkarius ''' -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.ccr.standard import SymbolSpecs -from caster.lib.dfplus.additions import SelectiveAction -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.ccr.standard import SymbolSpecs +from castervoice.lib.dfplus.additions import SelectiveAction +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class Javascript(MergeRule): diff --git a/caster/lib/ccr/javascript/__init__.py b/castervoice/lib/ccr/latex/__init__.py similarity index 100% rename from caster/lib/ccr/javascript/__init__.py rename to castervoice/lib/ccr/latex/__init__.py diff --git a/caster/lib/ccr/latex/latex.py b/castervoice/lib/ccr/latex/latex.py similarity index 96% rename from caster/lib/ccr/latex/latex.py rename to castervoice/lib/ccr/latex/latex.py index d36f02dec..9eadab26d 100644 --- a/caster/lib/ccr/latex/latex.py +++ b/castervoice/lib/ccr/latex/latex.py @@ -5,11 +5,11 @@ ''' from dragonfly import Function, Choice -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R -from caster.lib.ccr.standard import SymbolSpecs +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R +from castervoice.lib.ccr.standard import SymbolSpecs # Return \first{second}, if second is empty then end inside the brackets for user input diff --git a/caster/lib/ccr/latex/__init__.py b/castervoice/lib/ccr/matlab/__init__.py similarity index 100% rename from caster/lib/ccr/latex/__init__.py rename to castervoice/lib/ccr/matlab/__init__.py diff --git a/caster/lib/ccr/matlab/matlab.py b/castervoice/lib/ccr/matlab/matlab.py similarity index 92% rename from caster/lib/ccr/matlab/matlab.py rename to castervoice/lib/ccr/matlab/matlab.py index d139e3d0a..63832cf3a 100644 --- a/caster/lib/ccr/matlab/matlab.py +++ b/castervoice/lib/ccr/matlab/matlab.py @@ -6,11 +6,11 @@ from dragonfly import Dictation, MappingRule -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.ccr.standard import SymbolSpecs -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.ccr.standard import SymbolSpecs +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class MatlabNon(MappingRule): diff --git a/caster/lib/ccr/matlab/__init__.py b/castervoice/lib/ccr/prolog/__init__.py similarity index 100% rename from caster/lib/ccr/matlab/__init__.py rename to castervoice/lib/ccr/prolog/__init__.py diff --git a/caster/lib/ccr/prolog/prolog.py b/castervoice/lib/ccr/prolog/prolog.py similarity index 82% rename from caster/lib/ccr/prolog/prolog.py rename to castervoice/lib/ccr/prolog/prolog.py index 527cc26c5..0be640631 100644 --- a/caster/lib/ccr/prolog/prolog.py +++ b/castervoice/lib/ccr/prolog/prolog.py @@ -5,11 +5,11 @@ ''' from dragonfly import Dictation, MappingRule -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R -from caster.lib.ccr.standard import SymbolSpecs +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R +from castervoice.lib.ccr.standard import SymbolSpecs class PrologNon(MappingRule): diff --git a/caster/lib/ccr/prolog/__init__.py b/castervoice/lib/ccr/python/__init__.py similarity index 100% rename from caster/lib/ccr/prolog/__init__.py rename to castervoice/lib/ccr/python/__init__.py diff --git a/caster/lib/ccr/python/python.py b/castervoice/lib/ccr/python/python.py similarity index 94% rename from caster/lib/ccr/python/python.py rename to castervoice/lib/ccr/python/python.py index 6afae20a3..6161ea49a 100644 --- a/caster/lib/ccr/python/python.py +++ b/castervoice/lib/ccr/python/python.py @@ -5,11 +5,11 @@ ''' from dragonfly import Dictation, MappingRule -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.ccr.standard import SymbolSpecs -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.ccr.standard import SymbolSpecs +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class PythonNon(MappingRule): diff --git a/caster/lib/ccr/python/__init__.py b/castervoice/lib/ccr/r/__init__.py similarity index 100% rename from caster/lib/ccr/python/__init__.py rename to castervoice/lib/ccr/r/__init__.py diff --git a/caster/lib/ccr/r/r.py b/castervoice/lib/ccr/r/r.py similarity index 96% rename from caster/lib/ccr/r/r.py rename to castervoice/lib/ccr/r/r.py index 5c80702a8..b765f7ff9 100644 --- a/caster/lib/ccr/r/r.py +++ b/castervoice/lib/ccr/r/r.py @@ -6,11 +6,11 @@ from dragonfly import Dictation, MappingRule, Choice -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.ccr.standard import SymbolSpecs -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.ccr.standard import SymbolSpecs +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class Rlang(MergeRule): diff --git a/caster/lib/ccr/r/__init__.py b/castervoice/lib/ccr/recording/__init__.py similarity index 100% rename from caster/lib/ccr/r/__init__.py rename to castervoice/lib/ccr/recording/__init__.py diff --git a/caster/lib/ccr/recording/again.py b/castervoice/lib/ccr/recording/again.py similarity index 84% rename from caster/lib/ccr/recording/again.py rename to castervoice/lib/ccr/recording/again.py index 88b4f6554..7c1ef8ccb 100644 --- a/caster/lib/ccr/recording/again.py +++ b/castervoice/lib/ccr/recording/again.py @@ -7,11 +7,11 @@ from dragonfly.actions.action_function import Function from dragonfly.actions.action_playback import Playback -from caster.lib import settings -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.state.actions import AsynchronousAction -from caster.lib.dfplus.state.short import L, S, R -from caster.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib import settings +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.state.actions import AsynchronousAction +from castervoice.lib.dfplus.state.short import L, S, R +from castervoice.lib.dfplus.merge.mergerule import MergeRule class Again(MergeRule): diff --git a/caster/lib/ccr/recording/alias.py b/castervoice/lib/ccr/recording/alias.py similarity index 89% rename from caster/lib/ccr/recording/alias.py rename to castervoice/lib/ccr/recording/alias.py index d91aae7dc..65d6aeb6e 100644 --- a/caster/lib/ccr/recording/alias.py +++ b/castervoice/lib/ccr/recording/alias.py @@ -1,13 +1,13 @@ from dragonfly.actions.action_function import Function -from caster.asynch.hmc import h_launch -from caster.lib import context, utilities, settings -from caster.lib import control -from caster.lib.actions import Text -from caster.lib.dfplus.merge.selfmodrule import SelfModifyingRule -from caster.lib.dfplus.state.actions import AsynchronousAction -from caster.lib.dfplus.state.actions2 import NullAction -from caster.lib.dfplus.state.short import R, L, S +from castervoice.asynch.hmc import h_launch +from castervoice.lib import context, utilities, settings +from castervoice.lib import control +from castervoice.lib.actions import Text +from castervoice.lib.dfplus.merge.selfmodrule import SelfModifyingRule +from castervoice.lib.dfplus.state.actions import AsynchronousAction +from castervoice.lib.dfplus.state.actions2 import NullAction +from castervoice.lib.dfplus.state.short import R, L, S _NEXUS = control.nexus() diff --git a/caster/lib/ccr/recording/bringme.py b/castervoice/lib/ccr/recording/bringme.py similarity index 94% rename from caster/lib/ccr/recording/bringme.py rename to castervoice/lib/ccr/recording/bringme.py index 8f433688a..09cd66802 100644 --- a/caster/lib/ccr/recording/bringme.py +++ b/castervoice/lib/ccr/recording/bringme.py @@ -6,10 +6,10 @@ # import dragonfly from dragonfly import Choice, Function, Dictation -from caster.lib import control, context, utilities, settings -from caster.lib.actions import Text, Key -from caster.lib.dfplus.merge.selfmodrule import SelfModifyingRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control, context, utilities, settings +from castervoice.lib.actions import Text, Key +from castervoice.lib.dfplus.merge.selfmodrule import SelfModifyingRule +from castervoice.lib.dfplus.state.short import R CONFIG = utilities.load_toml_file(settings.SETTINGS["paths"]["BRINGME_PATH"]) if not CONFIG: diff --git a/caster/lib/ccr/recording/history.py b/castervoice/lib/ccr/recording/history.py similarity index 90% rename from caster/lib/ccr/recording/history.py rename to castervoice/lib/ccr/recording/history.py index 07a60fde5..89ce3f433 100644 --- a/caster/lib/ccr/recording/history.py +++ b/castervoice/lib/ccr/recording/history.py @@ -2,13 +2,13 @@ from dragonfly.actions.action_function import Function from dragonfly.actions.action_playback import Playback -from caster.asynch.hmc import h_launch -from caster.lib import control -from caster.lib import settings, utilities -from caster.lib.dfplus.merge.selfmodrule import SelfModifyingRule -from caster.lib.dfplus.state.actions import AsynchronousAction -from caster.lib.dfplus.state.actions2 import NullAction -from caster.lib.dfplus.state.short import R, L, S +from castervoice.asynch.hmc import h_launch +from castervoice.lib import control +from castervoice.lib import settings, utilities +from castervoice.lib.dfplus.merge.selfmodrule import SelfModifyingRule +from castervoice.lib.dfplus.state.actions import AsynchronousAction +from castervoice.lib.dfplus.state.actions2 import NullAction +from castervoice.lib.dfplus.state.short import R, L, S _NEXUS = control.nexus() diff --git a/caster/lib/ccr/recording/__init__.py b/castervoice/lib/ccr/rust/__init__.py similarity index 100% rename from caster/lib/ccr/recording/__init__.py rename to castervoice/lib/ccr/rust/__init__.py diff --git a/caster/lib/ccr/rust/rust.py b/castervoice/lib/ccr/rust/rust.py similarity index 94% rename from caster/lib/ccr/rust/rust.py rename to castervoice/lib/ccr/rust/rust.py index 29fc02673..08e693cac 100644 --- a/caster/lib/ccr/rust/rust.py +++ b/castervoice/lib/ccr/rust/rust.py @@ -1,11 +1,11 @@ from dragonfly import Choice, MappingRule -from caster.lib import control, alphanumeric -from caster.lib.actions import Key, Text -from caster.lib.ccr.standard import SymbolSpecs -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control, alphanumeric +from castervoice.lib.actions import Key, Text +from castervoice.lib.ccr.standard import SymbolSpecs +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class RustNon(MappingRule): diff --git a/caster/lib/ccr/rust/__init__.py b/castervoice/lib/ccr/sql/__init__.py similarity index 100% rename from caster/lib/ccr/rust/__init__.py rename to castervoice/lib/ccr/sql/__init__.py diff --git a/caster/lib/ccr/sql/sql.py b/castervoice/lib/ccr/sql/sql.py similarity index 94% rename from caster/lib/ccr/sql/sql.py rename to castervoice/lib/ccr/sql/sql.py index ee6cceeb1..51a3576a7 100644 --- a/caster/lib/ccr/sql/sql.py +++ b/castervoice/lib/ccr/sql/sql.py @@ -4,10 +4,10 @@ @author: synkarius ''' -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R class SQL(MergeRule): diff --git a/caster/lib/ccr/standard.py b/castervoice/lib/ccr/standard.py similarity index 100% rename from caster/lib/ccr/standard.py rename to castervoice/lib/ccr/standard.py diff --git a/caster/lib/ccr/sql/__init__.py b/castervoice/lib/ccr/vhdl/__init__.py similarity index 100% rename from caster/lib/ccr/sql/__init__.py rename to castervoice/lib/ccr/vhdl/__init__.py diff --git a/caster/lib/ccr/vhdl/vhdl.py b/castervoice/lib/ccr/vhdl/vhdl.py similarity index 95% rename from caster/lib/ccr/vhdl/vhdl.py rename to castervoice/lib/ccr/vhdl/vhdl.py index 964243e4b..3f60ed0da 100644 --- a/caster/lib/ccr/vhdl/vhdl.py +++ b/castervoice/lib/ccr/vhdl/vhdl.py @@ -5,12 +5,12 @@ ''' from dragonfly import Mimic, MappingRule, Function, Choice -from caster.lib import control -from caster.lib.actions import Key, Text -from caster.lib.ccr.standard import SymbolSpecs -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import control +from castervoice.lib.actions import Key, Text +from castervoice.lib.ccr.standard import SymbolSpecs +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R from vhdl_strings import * diff --git a/caster/lib/ccr/vhdl/vhdl_strings.py b/castervoice/lib/ccr/vhdl/vhdl_strings.py similarity index 96% rename from caster/lib/ccr/vhdl/vhdl_strings.py rename to castervoice/lib/ccr/vhdl/vhdl_strings.py index 7bbd6404d..a63e3c749 100644 --- a/caster/lib/ccr/vhdl/vhdl_strings.py +++ b/castervoice/lib/ccr/vhdl/vhdl_strings.py @@ -1,4 +1,4 @@ -from caster.lib.actions import Key, Text +from castervoice.lib.actions import Key, Text case_string=Text("case TOKEN is")+Key("enter,tab")+Text("when 'TOKEN' => TOKEN")+\ Key("enter,backspace")+Text("end case;") diff --git a/caster/lib/clipboard.py b/castervoice/lib/clipboard.py similarity index 98% rename from caster/lib/clipboard.py rename to castervoice/lib/clipboard.py index e96d5b5a0..e40e40560 100644 --- a/caster/lib/clipboard.py +++ b/castervoice/lib/clipboard.py @@ -1,6 +1,6 @@ from dragonfly import Clipboard as DragonflyClipboard -from caster.lib import settings +from castervoice.lib import settings def _is_aenea_available(): diff --git a/caster/lib/context.py b/castervoice/lib/context.py similarity index 97% rename from caster/lib/context.py rename to castervoice/lib/context.py index 5bc0ec7f8..bccd465e3 100644 --- a/caster/lib/context.py +++ b/castervoice/lib/context.py @@ -2,9 +2,9 @@ from dragonfly import AppContext -from caster.lib import utilities, settings -from caster.lib.actions import Key -from caster.lib.clipboard import Clipboard +from castervoice.lib import utilities, settings +from castervoice.lib.actions import Key +from castervoice.lib.clipboard import Clipboard # Override dragonfly.AppContext with aenea.ProxyAppContext if the 'use_aenea' # setting is set to true. diff --git a/caster/lib/control.py b/castervoice/lib/control.py similarity index 71% rename from caster/lib/control.py rename to castervoice/lib/control.py index e0fc16286..95c06e944 100644 --- a/caster/lib/control.py +++ b/castervoice/lib/control.py @@ -1,4 +1,4 @@ -from caster.lib.ctrl.nexus import Nexus +from castervoice.lib.ctrl.nexus import Nexus _NEXUS = None diff --git a/caster/lib/ccr/vhdl/__init__.py b/castervoice/lib/ctrl/__init__.py similarity index 100% rename from caster/lib/ccr/vhdl/__init__.py rename to castervoice/lib/ctrl/__init__.py diff --git a/caster/lib/ctrl/dependencies.py b/castervoice/lib/ctrl/dependencies.py similarity index 97% rename from caster/lib/ctrl/dependencies.py rename to castervoice/lib/ctrl/dependencies.py index 65643627e..568dd03c0 100644 --- a/caster/lib/ctrl/dependencies.py +++ b/castervoice/lib/ctrl/dependencies.py @@ -3,7 +3,7 @@ @author: synkarius ''' -from caster.lib import settings +from castervoice.lib import settings class DependencyMan: diff --git a/caster/lib/ctrl/nexus.py b/castervoice/lib/ctrl/nexus.py similarity index 59% rename from caster/lib/ctrl/nexus.py rename to castervoice/lib/ctrl/nexus.py index 8d8b23130..e0699eb2e 100644 --- a/caster/lib/ctrl/nexus.py +++ b/castervoice/lib/ctrl/nexus.py @@ -1,12 +1,13 @@ from dragonfly.grammar.grammar_base import Grammar from dragonfly.grammar.recobs import RecognitionHistory -from caster.lib import settings -from caster.lib.ctrl.dependencies import DependencyMan -from caster.lib.ctrl.wsrdf import TimerForWSR, RecognitionHistoryForWSR -from caster.lib.dfplus.communication import Communicator -from caster.lib.dfplus.merge.ccrmerger import CCRMerger -from caster.lib.dfplus.state.stack import CasterState +from castervoice.lib import settings +from castervoice.lib.ctrl.dependencies import DependencyMan +from castervoice.lib.ctrl.wsrdf import TimerForWSR, RecognitionHistoryForWSR +from castervoice.lib.dfplus.communication import Communicator +from castervoice.lib.dfplus.merge.ccrmerger import CCRMerger +from castervoice.lib.dfplus.state.stack import CasterState +from castervoice.lib.ctrl.user import UserContentManager class Nexus: @@ -35,6 +36,13 @@ def __init__(self, real_merger_config=True): self.macros_grammar = Grammar("recorded_macros") self.merger = CCRMerger(real_merger_config) + + self.user_content_manager = None + + def process_user_content(self): + self.user_content_manager = UserContentManager() + + self.merger.add_user_content(self.user_content_manager) _NEXUS = None diff --git a/castervoice/lib/ctrl/user.py b/castervoice/lib/ctrl/user.py new file mode 100644 index 000000000..efacf1985 --- /dev/null +++ b/castervoice/lib/ctrl/user.py @@ -0,0 +1,56 @@ +''' +Created on Jan 26, 2019 + +@author: synkarius +''' + +from sys import path +import importlib, os, glob +from castervoice.lib import settings +import traceback + +class UserContentManager(object): + + def __init__(self): + self.rules = self.import_user_dir("get_rule", settings.SETTINGS["paths"]["USER_DIR"] + "/rules") + self.filters = self.import_user_dir("get_filter", settings.SETTINGS["paths"]["USER_DIR"] + "/filters") + + def import_user_dir(self, fn_name, fpath): + result = [] + + # check for existence of user dir + if not os.path.isdir(fpath): + msg = "No directory '{}' was found. Did you configure your USER_DIR correctly in {}?" + print(msg.format(fpath, settings.get_filename())) + return result + path.append(fpath) + + # get names of all python files in dir + python_files = glob.glob(fpath + "/*.py") + modules = [ + os.path.basename(f)[:-3] + for f in python_files + if not f.endswith('__init__.py') + ] + for lib_name in modules: + # try to import the user rules one by one + lib = None + try: + lib = importlib.import_module(lib_name) + except Exception as e: + print("Could not load '{}'. Module has errors: {}".format(lib_name, traceback.format_exc())) + continue + + # get them and add them to nexus + fn = None + try: + fn = getattr(lib, fn_name) + except AttributeError: + msg = "No method named '{}' was found on '{}'. Did you forget to implement it?" + print(msg.format(fn_name, lib_name)) + continue + + + result.append(fn()) + + return result \ No newline at end of file diff --git a/caster/lib/ctrl/wsrdf.py b/castervoice/lib/ctrl/wsrdf.py similarity index 100% rename from caster/lib/ctrl/wsrdf.py rename to castervoice/lib/ctrl/wsrdf.py diff --git a/caster/lib/dev/__init__.py b/castervoice/lib/dev/__init__.py similarity index 100% rename from caster/lib/dev/__init__.py rename to castervoice/lib/dev/__init__.py diff --git a/caster/lib/dev/dev.py b/castervoice/lib/dev/dev.py similarity index 89% rename from caster/lib/dev/dev.py rename to castervoice/lib/dev/dev.py index 1c34d821e..aca47eefe 100644 --- a/caster/lib/dev/dev.py +++ b/castervoice/lib/dev/dev.py @@ -7,19 +7,19 @@ from dragonfly import (Function, BringApp, WaitWindow, Dictation, Choice, Grammar, MappingRule, Paste) -from caster.lib import utilities, settings, context, control -from caster.lib.dev import devgen -from caster.lib.actions import Key, Text -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.state.actions import ContextSeeker, AsynchronousAction, \ +from castervoice.lib import utilities, settings, context, control +from castervoice.lib.dev import devgen +from castervoice.lib.actions import Key, Text +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.state.actions import ContextSeeker, AsynchronousAction, \ RegisteredAction -from caster.lib.dfplus.state.actions2 import NullAction, ConfirmAction, \ +from castervoice.lib.dfplus.state.actions2 import NullAction, ConfirmAction, \ BoxAction -from caster.lib.dfplus.state.short import L, S, R -from caster.lib.dfplus.state.stackitems import StackItemRegisteredAction -from caster.lib.tests import testrunner -from caster.lib.tests.complexity import run_tests -from caster.lib.tests.testutils import MockAlternative +from castervoice.lib.dfplus.state.short import L, S, R +from castervoice.lib.dfplus.state.stackitems import StackItemRegisteredAction +from castervoice.lib.tests import testrunner +from castervoice.lib.tests.complexity import run_tests +from castervoice.lib.tests.testutils import MockAlternative grammar = Grammar('development') @@ -54,13 +54,13 @@ def experiment(): # spoken #for reference # ]: # s = SequenceMatcher(None, item, spoken) # difflib -# caster_abbrev = selector._abbreviated_string(spoken).lower() # caster +# caster_abbrev = selector._abbreviated_string(spoken).lower() # castervoice # # l = StringMatcher() # l.set_seqs(spoken, item) # # -# print("caster", item, selector._phrase_to_symbol_similarity_score(caster_abbrev, item)) +# print("castervoice", item, selector._phrase_to_symbol_similarity_score(caster_abbrev, item)) # print("difflib: ", item, s.ratio()) # print("levenshtein: ", item, l.ratio()) # print("sift4: ", item, sift4(item, spoken, None, None)) @@ -125,7 +125,7 @@ def launch_url(url): class DevelopmentHelp(MappingRule): mapping = { - # caster development tools + # castervoice development tools "(show | open) documentation": Function(launch_url), "open natlink folder": @@ -154,7 +154,7 @@ class DevelopmentHelp(MappingRule): "python": "*.py", }), Choice("url", { - "caster": "https://caster.readthedocs.io/en/latest/", + "castervoice": "https://castervoice.readthedocs.io/en/latest/", "dragonfly": "https://dragonfly2.readthedocs.io/en/latest/", }), ] diff --git a/caster/lib/dev/devgen.py b/castervoice/lib/dev/devgen.py similarity index 93% rename from caster/lib/dev/devgen.py rename to castervoice/lib/dev/devgen.py index 642f8b5cf..69404f2d5 100644 --- a/caster/lib/dev/devgen.py +++ b/castervoice/lib/dev/devgen.py @@ -1,6 +1,6 @@ ο»Ώfrom dragonfly import MappingRule, Grammar, Config, Section, Item, Dictation, Mimic -from caster.lib import settings, utilities -from caster.lib.actions import Key, Text +from castervoice.lib import settings, utilities +from dragonfly.actions import Key, Text _grammar = Grammar("dev gen") diff --git a/caster/lib/ctrl/__init__.py b/castervoice/lib/dfplus/__init__.py similarity index 100% rename from caster/lib/ctrl/__init__.py rename to castervoice/lib/dfplus/__init__.py diff --git a/caster/lib/dfplus/additions.py b/castervoice/lib/dfplus/additions.py similarity index 97% rename from caster/lib/dfplus/additions.py rename to castervoice/lib/dfplus/additions.py index 74b4ea198..312cd3bd7 100644 --- a/caster/lib/dfplus/additions.py +++ b/castervoice/lib/dfplus/additions.py @@ -4,7 +4,7 @@ IntegerContentBase from dragonfly.language.loader import language -from caster.lib import utilities, settings, alphanumeric +from castervoice.lib import utilities, settings, alphanumeric class SelectiveAction(ActionBase): diff --git a/caster/lib/dfplus/communication.py b/castervoice/lib/dfplus/communication.py similarity index 100% rename from caster/lib/dfplus/communication.py rename to castervoice/lib/dfplus/communication.py diff --git a/caster/lib/dfplus/__init__.py b/castervoice/lib/dfplus/hint/__init__.py similarity index 100% rename from caster/lib/dfplus/__init__.py rename to castervoice/lib/dfplus/hint/__init__.py diff --git a/caster/lib/dfplus/hint/hintnode.py b/castervoice/lib/dfplus/hint/hintnode.py similarity index 95% rename from caster/lib/dfplus/hint/hintnode.py rename to castervoice/lib/dfplus/hint/hintnode.py index 7dfd2eb2d..bf6fe6831 100644 --- a/caster/lib/dfplus/hint/hintnode.py +++ b/castervoice/lib/dfplus/hint/hintnode.py @@ -5,10 +5,10 @@ ''' from dragonfly import ActionBase -from caster.lib import utilities -from caster.lib.dfplus.merge.selfmodrule import SelfModifyingRule -from caster.lib.dfplus.state.actions import ContextSeeker -from caster.lib.dfplus.state.short import L, S +from castervoice.lib import utilities +from castervoice.lib.dfplus.merge.selfmodrule import SelfModifyingRule +from castervoice.lib.dfplus.state.actions import ContextSeeker +from castervoice.lib.dfplus.state.short import L, S class HintNode(object): diff --git a/caster/lib/dfplus/hint/__init__.py b/castervoice/lib/dfplus/hint/nodes/__init__.py similarity index 100% rename from caster/lib/dfplus/hint/__init__.py rename to castervoice/lib/dfplus/hint/nodes/__init__.py diff --git a/caster/lib/dfplus/hint/nodes/css.py b/castervoice/lib/dfplus/hint/nodes/css.py similarity index 98% rename from caster/lib/dfplus/hint/nodes/css.py rename to castervoice/lib/dfplus/hint/nodes/css.py index 657a8954d..ffdf53f76 100644 --- a/caster/lib/dfplus/hint/nodes/css.py +++ b/castervoice/lib/dfplus/hint/nodes/css.py @@ -6,11 +6,11 @@ from dragonfly.grammar.grammar_base import Grammar -from caster.lib import control -from caster.lib.actions import Text -from caster.lib.dfplus.hint import hintnode -from caster.lib.dfplus.hint.hintnode import NodeRule -from caster.lib.dfplus.state.actions2 import NullAction +from castervoice.lib import control +from castervoice.lib.actions import Text +from castervoice.lib.dfplus.hint import hintnode +from castervoice.lib.dfplus.hint.hintnode import NodeRule +from castervoice.lib.dfplus.state.actions2 import NullAction H = hintnode.HintNode _style = H("style", Text("-style: "), [ diff --git a/caster/lib/dfplus/hint/nodes/__init__.py b/castervoice/lib/dfplus/merge/__init__.py similarity index 100% rename from caster/lib/dfplus/hint/nodes/__init__.py rename to castervoice/lib/dfplus/merge/__init__.py diff --git a/caster/lib/dfplus/merge/ccrmerger.py b/castervoice/lib/dfplus/merge/ccrmerger.py similarity index 97% rename from caster/lib/dfplus/merge/ccrmerger.py rename to castervoice/lib/dfplus/merge/ccrmerger.py index 6c624808f..011639fa0 100644 --- a/caster/lib/dfplus/merge/ccrmerger.py +++ b/castervoice/lib/dfplus/merge/ccrmerger.py @@ -9,10 +9,10 @@ from dragonfly.grammar.grammar_base import Grammar from dragonfly.grammar.rule_compound import CompoundRule -from caster.lib import utilities, settings, textformat -from caster.lib.dfplus.merge import gfilter -from caster.lib.dfplus.merge.mergepair import MergePair, MergeInf -from caster.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib import utilities, settings, textformat +from castervoice.lib.dfplus.merge import gfilter +from castervoice.lib.dfplus.merge.mergepair import MergePair, MergeInf +from castervoice.lib.dfplus.merge.mergerule import MergeRule def app_merge(mp): @@ -136,6 +136,12 @@ def add_selfmodrule(self, rule): def add_filter(self, filter): if not filter in self._filters: self._filters.append(filter) + + def add_user_content(self, user_content_manager): + for rule in user_content_manager.rules: + self.add_global_rule(rule) + for filter_ in user_content_manager.filters: + self.add_filter(filter_) def _add_to(self, rule, group): if rule.get_pronunciation() in \ diff --git a/caster/lib/dfplus/merge/filter.py b/castervoice/lib/dfplus/merge/filter.py similarity index 100% rename from caster/lib/dfplus/merge/filter.py rename to castervoice/lib/dfplus/merge/filter.py diff --git a/caster/lib/dfplus/merge/gfilter.py b/castervoice/lib/dfplus/merge/gfilter.py similarity index 97% rename from caster/lib/dfplus/merge/gfilter.py rename to castervoice/lib/dfplus/merge/gfilter.py index 0bb4c59cb..f51489ebd 100644 --- a/caster/lib/dfplus/merge/gfilter.py +++ b/castervoice/lib/dfplus/merge/gfilter.py @@ -4,8 +4,8 @@ import io import os -from caster.lib import settings -from caster.lib.dfplus.merge.mergepair import MergeInf, MergePair +from castervoice.lib import settings +from castervoice.lib.dfplus.merge.mergepair import MergeInf, MergePair from dragonfly.grammar.elements import Choice @@ -123,7 +123,7 @@ def __init__(self, lines): DEFS = None if os.path.isfile(settings.SETTINGS["paths"]["FILTER_DEFS_PATH"]): - '''user must create caster/user/fdefs.txt for it to get picked up here''' + '''user must create castervoice/user/fdefs.txt for it to get picked up here''' with io.open( settings.SETTINGS["paths"]["FILTER_DEFS_PATH"], "rt", encoding="utf-8") as f: lines = f.readlines() diff --git a/caster/lib/dfplus/merge/mergepair.py b/castervoice/lib/dfplus/merge/mergepair.py similarity index 100% rename from caster/lib/dfplus/merge/mergepair.py rename to castervoice/lib/dfplus/merge/mergepair.py diff --git a/caster/lib/dfplus/merge/mergerule.py b/castervoice/lib/dfplus/merge/mergerule.py similarity index 100% rename from caster/lib/dfplus/merge/mergerule.py rename to castervoice/lib/dfplus/merge/mergerule.py diff --git a/caster/lib/dfplus/merge/selfmodrule.py b/castervoice/lib/dfplus/merge/selfmodrule.py similarity index 87% rename from caster/lib/dfplus/merge/selfmodrule.py rename to castervoice/lib/dfplus/merge/selfmodrule.py index cb7e75365..96dc61222 100644 --- a/caster/lib/dfplus/merge/selfmodrule.py +++ b/castervoice/lib/dfplus/merge/selfmodrule.py @@ -5,10 +5,10 @@ ''' from dragonfly.grammar.elements import Dictation -from caster.lib.dfplus.additions import IntegerRefST -from caster.lib.dfplus.merge.mergepair import MergeInf -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.actions2 import NullAction +from castervoice.lib.dfplus.additions import IntegerRefST +from castervoice.lib.dfplus.merge.mergepair import MergeInf +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.actions2 import NullAction class SelfModifyingRule(MergeRule): diff --git a/caster/lib/dfplus/merge/__init__.py b/castervoice/lib/dfplus/state/__init__.py similarity index 100% rename from caster/lib/dfplus/merge/__init__.py rename to castervoice/lib/dfplus/state/__init__.py diff --git a/caster/lib/dfplus/state/actions.py b/castervoice/lib/dfplus/state/actions.py similarity index 97% rename from caster/lib/dfplus/state/actions.py rename to castervoice/lib/dfplus/state/actions.py index f12647354..ca63c8bc2 100644 --- a/caster/lib/dfplus/state/actions.py +++ b/castervoice/lib/dfplus/state/actions.py @@ -1,7 +1,7 @@ from dragonfly import ActionBase -from caster.lib import control -from caster.lib.dfplus.state.stackitems import StackItemRegisteredAction, \ +from castervoice.lib import control +from castervoice.lib.dfplus.state.stackitems import StackItemRegisteredAction, \ StackItemSeeker, StackItemAsynchronous _NEXUS = control.nexus() diff --git a/caster/lib/dfplus/state/actions2.py b/castervoice/lib/dfplus/state/actions2.py similarity index 95% rename from caster/lib/dfplus/state/actions2.py rename to castervoice/lib/dfplus/state/actions2.py index d73a67cf8..a51447ba1 100644 --- a/caster/lib/dfplus/state/actions2.py +++ b/castervoice/lib/dfplus/state/actions2.py @@ -1,11 +1,11 @@ from dragonfly.actions.action_function import Function -from caster.asynch.hmc import h_launch -from caster.lib import settings, utilities -from caster.lib.dfplus.state.actions import AsynchronousAction, \ +from castervoice.asynch.hmc import h_launch +from castervoice.lib import settings, utilities +from castervoice.lib.dfplus.state.actions import AsynchronousAction, \ RegisteredAction -from caster.lib.dfplus.state.short import L, S -from caster.lib.dfplus.state.stackitems import StackItemConfirm, \ +from castervoice.lib.dfplus.state.short import L, S +from castervoice.lib.dfplus.state.stackitems import StackItemConfirm, \ StackItemAsynchronous diff --git a/caster/lib/dfplus/state/contextoptions.py b/castervoice/lib/dfplus/state/contextoptions.py similarity index 100% rename from caster/lib/dfplus/state/contextoptions.py rename to castervoice/lib/dfplus/state/contextoptions.py diff --git a/castervoice/lib/dfplus/state/short.py b/castervoice/lib/dfplus/state/short.py new file mode 100644 index 000000000..7869f52f3 --- /dev/null +++ b/castervoice/lib/dfplus/state/short.py @@ -0,0 +1,12 @@ +''' +Created on Jun 7, 2015 + +@author: dave +''' +# shorter names for classes +from castervoice.lib.dfplus.state.actions import RegisteredAction +from castervoice.lib.dfplus.state.contextoptions import ContextLevel, ContextSet + +R = RegisteredAction +L = ContextLevel +S = ContextSet diff --git a/caster/lib/dfplus/state/stack.py b/castervoice/lib/dfplus/state/stack.py similarity index 98% rename from caster/lib/dfplus/state/stack.py rename to castervoice/lib/dfplus/state/stack.py index 082fc7b28..21fde7012 100644 --- a/caster/lib/dfplus/state/stack.py +++ b/castervoice/lib/dfplus/state/stack.py @@ -5,8 +5,8 @@ ''' import Queue -from caster.lib import settings, utilities -from caster.lib.dfplus.state.stackitems import StackItemSeeker, \ +from castervoice.lib import settings, utilities +from castervoice.lib.dfplus.state.stackitems import StackItemSeeker, \ StackItemRegisteredAction, StackItemAsynchronous, StackItemConfirm diff --git a/caster/lib/dfplus/state/stackitems.py b/castervoice/lib/dfplus/state/stackitems.py similarity index 99% rename from caster/lib/dfplus/state/stackitems.py rename to castervoice/lib/dfplus/state/stackitems.py index f0c531bf0..cd0d9581d 100644 --- a/caster/lib/dfplus/state/stackitems.py +++ b/castervoice/lib/dfplus/state/stackitems.py @@ -5,7 +5,7 @@ ''' from dragonfly import Pause, ActionBase -from caster.lib import settings +from castervoice.lib import settings class StackItem: diff --git a/caster/lib/dll/tirg-dll.dll b/castervoice/lib/dll/tirg-dll.dll similarity index 100% rename from caster/lib/dll/tirg-dll.dll rename to castervoice/lib/dll/tirg-dll.dll diff --git a/caster/lib/gdi.py b/castervoice/lib/gdi.py similarity index 100% rename from caster/lib/gdi.py rename to castervoice/lib/gdi.py diff --git a/caster/lib/navigation.py b/castervoice/lib/navigation.py similarity index 97% rename from caster/lib/navigation.py rename to castervoice/lib/navigation.py index 123e50d02..d10889a63 100644 --- a/caster/lib/navigation.py +++ b/castervoice/lib/navigation.py @@ -9,10 +9,10 @@ import dragonfly from dragonfly import Choice, monitors -from caster.asynch.mouse.legion import LegionScanner -from caster.lib import control, settings, utilities, textformat -from caster.lib.actions import Key, Text, Mouse -from caster.lib.clipboard import Clipboard +from castervoice.asynch.mouse.legion import LegionScanner +from castervoice.lib import control, settings, utilities, textformat +from castervoice.lib.actions import Key, Text, Mouse +from castervoice.lib.clipboard import Clipboard DIRECTION_STANDARD = { "sauce [E]": "up", diff --git a/caster/lib/settings.py b/castervoice/lib/settings.py similarity index 89% rename from caster/lib/settings.py rename to castervoice/lib/settings.py index a3a0c78c4..179b9a290 100644 --- a/caster/lib/settings.py +++ b/castervoice/lib/settings.py @@ -2,18 +2,24 @@ import collections import io -import toml import os import sys -import errno +import toml import _winreg + SETTINGS = {} BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "lib", 1)[0].replace("\\", "/") -_SETTINGS_PATH = BASE_PATH + "/bin/data/settings.toml" +_USER_DIR = os.path.expanduser("~").replace("\\", "/") + "/.caster" +_SETTINGS_PATH = _USER_DIR + "/data/settings.toml" + +for directory in ["data", "rules", "filters", "sikuli"]: + d = _USER_DIR+"/"+directory + if not os.path.exists(d): + os.makedirs(d) # title -SOFTWARE_VERSION_NUMBER = "0.5.11" +SOFTWARE_VERSION_NUMBER = "0.6.8" SOFTWARE_NAME = "Caster v " + SOFTWARE_VERSION_NUMBER HOMUNCULUS_VERSION = "HMC v " + SOFTWARE_VERSION_NUMBER HMC_TITLE_RECORDING = " :: Recording Manager" @@ -36,6 +42,8 @@ WSR = False +def get_filename(): + return _SETTINGS_PATH def _validate_engine_path(): ''' @@ -118,22 +126,27 @@ def _find_natspeak(): _DEFAULT_SETTINGS = { "paths": { "BASE_PATH": BASE_PATH, + "USER_DIR": _USER_DIR, # DATA - "BRINGME_PATH": BASE_PATH + "/bin/data/bringme.toml", + "BRINGME_PATH": _USER_DIR + "/data/bringme.toml", "BRINGME_DEFAULTS_PATH": BASE_PATH + "/bin/share/bringme.toml.defaults", - "ALIAS_PATH": BASE_PATH + "/bin/data/aliases.toml", - "CCR_CONFIG_PATH": BASE_PATH + "/bin/data/ccr.toml", + "ALIAS_PATH": _USER_DIR + "/data/aliases.toml", + "CCR_CONFIG_PATH": _USER_DIR + "/data/ccr.toml", "DLL_PATH": BASE_PATH + "/lib/dll/", - "FILTER_DEFS_PATH": BASE_PATH + "/user/words.txt", - "LOG_PATH": BASE_PATH + "/bin/data/log.txt", - "RECORDED_MACROS_PATH": BASE_PATH + "/bin/data/recorded_macros.toml", - "SAVED_CLIPBOARD_PATH": BASE_PATH + "/bin/data/clipboard.toml", - "SIKULI_SCRIPTS_FOLDER_PATH": BASE_PATH + "/asynch/sikuli/scripts", + "FILTER_DEFS_PATH": _USER_DIR + "/data/words.txt", + "LOG_PATH": _USER_DIR + "/log.txt", + "RECORDED_MACROS_PATH": _USER_DIR + "/data/recorded_macros.toml", + "SAVED_CLIPBOARD_PATH": _USER_DIR + "/data/clipboard.toml", + "SIKULI_SCRIPTS_PATH": _USER_DIR + "/sikuli", # REMOTE_DEBUGGER_PATH is the folder in which pydevd.py can be found "REMOTE_DEBUGGER_PATH": "", + # SIKULIX EXECUTABLES + "SIKULI_IDE": "", + "SIKULI_RUNNER": "", + # EXECUTABLES "DOUGLAS_PATH": BASE_PATH + "/asynch/mouse/grids.py", "ENGINE_PATH": _validate_engine_path(), @@ -144,14 +157,11 @@ def _find_natspeak(): "REBOOT_PATH": BASE_PATH + "/bin/reboot.bat", "REBOOT_PATH_WSR": BASE_PATH + "/bin/reboot_wsr.bat", "SETTINGS_WINDOW_PATH": BASE_PATH + "/asynch/settingswindow.py", - "SIKULI_COMPATIBLE_JAVA_EXE_PATH": "", - "SIKULI_IDE_JAR_PATH": "", - "SIKULI_SCRIPTS_JAR_PATH": "", - "SIKULI_SERVER_PATH": BASE_PATH + "/asynch/sikuli/scripts/xmlrpc_server.sikuli", + "SIKULI_SERVER_PATH": BASE_PATH + "/asynch/sikuli/server/xmlrpc_server.sikuli", "WSR_PATH": "C:/Windows/Speech/Common/sapisvr.exe", # CCR - "CONFIGDEBUGTXT_PATH": BASE_PATH + "/bin/data/configdebug.txt", + "CONFIGDEBUGTXT_PATH": _USER_DIR + "/data/configdebug.txt", # PYTHON "PYTHONW": "C:/Python27/pythonw", @@ -192,6 +202,12 @@ def _find_natspeak(): "winword": True, "wsr": True, }, + + # sikuli settings + "sikuli": { + "enabled": False, + "version": "" + }, # feature switches "feature_rules": { @@ -207,7 +223,6 @@ def _find_natspeak(): # miscellaneous section "miscellaneous": { "dev_commands": False, - "sikuli_enabled": False, "keypress_wait": 50, # milliseconds "max_ccr_repetitions": 16, "atom_palette_wait": 30, # hundredths of a second diff --git a/caster/lib/dfplus/state/__init__.py b/castervoice/lib/tests/__init__.py similarity index 100% rename from caster/lib/dfplus/state/__init__.py rename to castervoice/lib/tests/__init__.py diff --git a/caster/lib/tests/complexity.py b/castervoice/lib/tests/complexity.py similarity index 94% rename from caster/lib/tests/complexity.py rename to castervoice/lib/tests/complexity.py index f49101360..1c2431c0e 100644 --- a/caster/lib/tests/complexity.py +++ b/castervoice/lib/tests/complexity.py @@ -10,19 +10,19 @@ from dragonfly.grammar.elements import Choice from dragonfly.grammar.grammar_base import Grammar -from caster.lib import settings -from caster.lib.actions import Text -from caster.lib.ccr.core.alphabet import Alphabet -from caster.lib.ccr.core.nav import Navigation -from caster.lib.ccr.core.numbers import Numbers -from caster.lib.ccr.core.punctuation import Punctuation -from caster.lib.ccr.python.python import Python -from caster.lib.dfplus.hint.hintnode import NodeRule -from caster.lib.dfplus.hint.nodes import css -from caster.lib.dfplus.merge.ccrmerger import CCRMerger -from caster.lib.dfplus.merge.mergepair import MergeInf -from caster.lib.dfplus.merge.mergerule import MergeRule -from caster.lib.dfplus.state.short import R +from castervoice.lib import settings +from castervoice.lib.actions import Text +from castervoice.lib.ccr.core.alphabet import Alphabet +from castervoice.lib.ccr.core.nav import Navigation +from castervoice.lib.ccr.core.numbers import Numbers +from castervoice.lib.ccr.core.punctuation import Punctuation +from castervoice.lib.ccr.python.python import Python +from castervoice.lib.dfplus.hint.hintnode import NodeRule +from castervoice.lib.dfplus.hint.nodes import css +from castervoice.lib.dfplus.merge.ccrmerger import CCRMerger +from castervoice.lib.dfplus.merge.mergepair import MergeInf +from castervoice.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.dfplus.state.short import R def get_500_words(): diff --git a/caster/lib/tests/testrunner.py b/castervoice/lib/tests/testrunner.py similarity index 84% rename from caster/lib/tests/testrunner.py rename to castervoice/lib/tests/testrunner.py index 6e53711b3..9aca3f55e 100644 --- a/caster/lib/tests/testrunner.py +++ b/castervoice/lib/tests/testrunner.py @@ -1,6 +1,6 @@ import unittest -from caster.lib.tests.unit import merger, mergerule, filter, state, stack, node, textformat +from castervoice.lib.tests.unit import merger, mergerule, filter, state, stack, node, textformat def get_master_suite(): diff --git a/caster/lib/tests/testutils.py b/castervoice/lib/tests/testutils.py similarity index 93% rename from caster/lib/tests/testutils.py rename to castervoice/lib/tests/testutils.py index 0b46b07c7..38fa27081 100644 --- a/caster/lib/tests/testutils.py +++ b/castervoice/lib/tests/testutils.py @@ -3,8 +3,8 @@ from dragonfly.actions.action_startapp import BringApp from dragonfly.actions.action_waitwindow import WaitWindow -from caster.lib import context -from caster.lib.actions import Key, Text +from castervoice.lib import context +from castervoice.lib.actions import Key, Text # get_notepad() # notepad_message("\nStarting Tests") diff --git a/caster/lib/tests/__init__.py b/castervoice/lib/tests/unit/__init__.py similarity index 100% rename from caster/lib/tests/__init__.py rename to castervoice/lib/tests/unit/__init__.py diff --git a/caster/lib/tests/unit/filter.py b/castervoice/lib/tests/unit/filter.py similarity index 81% rename from caster/lib/tests/unit/filter.py rename to castervoice/lib/tests/unit/filter.py index 859ce3bd0..fcad9d740 100644 --- a/caster/lib/tests/unit/filter.py +++ b/castervoice/lib/tests/unit/filter.py @@ -1,15 +1,15 @@ -from caster.apps import eclipse -from caster.apps.eclipse import EclipseCCR -from caster.lib.actions import Text -from caster.lib.ccr.bash.bash import Bash -from caster.lib.ccr.java.java import Java -from caster.lib.ccr.python.python import Python -from caster.lib.ccr.recording.alias import ChainAlias -from caster.lib.ccr.standard import SymbolSpecs -from caster.lib.dfplus.merge.ccrmerger import CCRMerger -from caster.lib.dfplus.merge.filter import make_filter, there_is_spec_overlap, incoming_gets_priority -from caster.lib.dfplus.merge.mergepair import MergeInf -from caster.lib.tests.unit.state import TestNexus +from castervoice.apps import eclipse +from castervoice.apps.eclipse import EclipseCCR +from castervoice.lib.actions import Text +from castervoice.lib.ccr.bash.bash import Bash +from castervoice.lib.ccr.java.java import Java +from castervoice.lib.ccr.python.python import Python +from castervoice.lib.ccr.recording.alias import ChainAlias +from castervoice.lib.ccr.standard import SymbolSpecs +from castervoice.lib.dfplus.merge.ccrmerger import CCRMerger +from castervoice.lib.dfplus.merge.filter import make_filter, there_is_spec_overlap, incoming_gets_priority +from castervoice.lib.dfplus.merge.mergepair import MergeInf +from castervoice.lib.tests.unit.state import TestNexus class TestFilterFunctions(TestNexus): diff --git a/caster/lib/tests/unit/merger.py b/castervoice/lib/tests/unit/merger.py similarity index 87% rename from caster/lib/tests/unit/merger.py rename to castervoice/lib/tests/unit/merger.py index ad2148f73..1433d4736 100644 --- a/caster/lib/tests/unit/merger.py +++ b/castervoice/lib/tests/unit/merger.py @@ -1,16 +1,16 @@ from dragonfly.grammar.rule_mapping import MappingRule -from caster.apps import eclipse -from caster.apps.eclipse import EclipseCCR -from caster.lib.actions import Key -from caster.lib.ccr.bash.bash import Bash -from caster.lib.ccr.java.java import Java -from caster.lib.ccr.python.python import Python -from caster.lib.ccr.recording.alias import ChainAlias -from caster.lib.ccr.standard import SymbolSpecs -from caster.lib.dfplus.merge.ccrmerger import CCRMerger -from caster.lib.dfplus.merge.mergepair import MergeInf -from caster.lib.tests.unit.state import TestNexus +from castervoice.apps import eclipse +from castervoice.apps.eclipse import EclipseCCR +from castervoice.lib.actions import Key +from castervoice.lib.ccr.bash.bash import Bash +from castervoice.lib.ccr.java.java import Java +from castervoice.lib.ccr.python.python import Python +from castervoice.lib.ccr.recording.alias import ChainAlias +from castervoice.lib.ccr.standard import SymbolSpecs +from castervoice.lib.dfplus.merge.ccrmerger import CCRMerger +from castervoice.lib.dfplus.merge.mergepair import MergeInf +from castervoice.lib.tests.unit.state import TestNexus def demo_filter(_): diff --git a/caster/lib/tests/unit/mergerule.py b/castervoice/lib/tests/unit/mergerule.py similarity index 82% rename from caster/lib/tests/unit/mergerule.py rename to castervoice/lib/tests/unit/mergerule.py index 76a6bbdaf..b2b00f708 100644 --- a/caster/lib/tests/unit/mergerule.py +++ b/castervoice/lib/tests/unit/mergerule.py @@ -1,12 +1,12 @@ -#Embedded file name: C:\NatLink\NatLink\MacroSystem\caster\lib\tests\unit\mergerule.py +#Embedded file name: C:\NatLink\NatLink\MacroSystem\castervoice\lib\tests\unit\mergerule.py import unittest -from caster.lib.context import AppContext -from caster.apps.eclipse import EclipseCCR -from caster.lib.ccr.java.java import Java -from caster.lib.ccr.javascript.javascript import Javascript -from caster.lib.ccr.python.python import Python -from caster.lib.ccr.recording.alias import Alias -from caster.lib.dfplus.merge.mergerule import MergeRule +from castervoice.lib.context import AppContext +from castervoice.apps.eclipse import EclipseCCR +from castervoice.lib.ccr.java.java import Java +from castervoice.lib.ccr.javascript.javascript import Javascript +from castervoice.lib.ccr.python.python import Python +from castervoice.lib.ccr.recording.alias import Alias +from castervoice.lib.dfplus.merge.mergerule import MergeRule class TestMergeRule(unittest.TestCase): diff --git a/caster/lib/tests/unit/nexus.py b/castervoice/lib/tests/unit/nexus.py similarity index 76% rename from caster/lib/tests/unit/nexus.py rename to castervoice/lib/tests/unit/nexus.py index be3a4b892..dbb304731 100644 --- a/caster/lib/tests/unit/nexus.py +++ b/castervoice/lib/tests/unit/nexus.py @@ -1,6 +1,6 @@ import unittest -from caster.lib.ctrl.nexus import Nexus +from castervoice.lib.ctrl.nexus import Nexus class TestNexus(unittest.TestCase): diff --git a/caster/lib/tests/unit/node.py b/castervoice/lib/tests/unit/node.py similarity index 94% rename from caster/lib/tests/unit/node.py rename to castervoice/lib/tests/unit/node.py index 4eec8c424..e29c1703c 100644 --- a/caster/lib/tests/unit/node.py +++ b/castervoice/lib/tests/unit/node.py @@ -1,8 +1,8 @@ from dragonfly.actions.action_base import ActionBase -from caster.lib.dfplus.hint.hintnode import HintNode, NodeRule -from caster.lib.dfplus.state.actions2 import NullAction -from caster.lib.tests.unit.nexus import TestNexus +from castervoice.lib.dfplus.hint.hintnode import HintNode, NodeRule +from castervoice.lib.dfplus.state.actions2 import NullAction +from castervoice.lib.tests.unit.nexus import TestNexus class FText(ActionBase): diff --git a/caster/lib/tests/unit/stack.py b/castervoice/lib/tests/unit/stack.py similarity index 97% rename from caster/lib/tests/unit/stack.py rename to castervoice/lib/tests/unit/stack.py index 388a9634a..a294e69e9 100644 --- a/caster/lib/tests/unit/stack.py +++ b/castervoice/lib/tests/unit/stack.py @@ -1,16 +1,16 @@ from dragonfly.actions.action_function import Function -from caster.lib import utilities -from caster.lib.actions import Text -from caster.lib.dfplus.state.actions import AsynchronousAction, ContextSeeker, \ +from castervoice.lib import utilities +from castervoice.lib.actions import Text +from castervoice.lib.dfplus.state.actions import AsynchronousAction, ContextSeeker, \ RegisteredAction -from caster.lib.dfplus.state.actions2 import NullAction -from caster.lib.dfplus.state.short import L, S, R -from caster.lib.dfplus.state.stackitems import StackItemAsynchronous, \ +from castervoice.lib.dfplus.state.actions2 import NullAction +from castervoice.lib.dfplus.state.short import L, S, R +from castervoice.lib.dfplus.state.stackitems import StackItemAsynchronous, \ StackItemRegisteredAction, StackItemSeeker -from caster.lib.tests.testutils import MockAlternative -from caster.lib.tests.unit.nexus import TestNexus +from castervoice.lib.tests.testutils import MockAlternative +from castervoice.lib.tests.unit.nexus import TestNexus class TestStack(TestNexus): diff --git a/caster/lib/tests/unit/state.py b/castervoice/lib/tests/unit/state.py similarity index 87% rename from caster/lib/tests/unit/state.py rename to castervoice/lib/tests/unit/state.py index 69362023e..bf7b2e8a0 100644 --- a/caster/lib/tests/unit/state.py +++ b/castervoice/lib/tests/unit/state.py @@ -1,12 +1,12 @@ from dragonfly.actions.action_function import Function -from caster.lib.dfplus.state.actions import AsynchronousAction -from caster.lib.dfplus.state.actions2 import NullAction -from caster.lib.dfplus.state.short import S, L, R -from caster.lib.dfplus.state.stackitems import StackItemAsynchronous, \ +from castervoice.lib.dfplus.state.actions import AsynchronousAction +from castervoice.lib.dfplus.state.actions2 import NullAction +from castervoice.lib.dfplus.state.short import S, L, R +from castervoice.lib.dfplus.state.stackitems import StackItemAsynchronous, \ StackItemRegisteredAction -from caster.lib.tests.testutils import MockAlternative -from caster.lib.tests.unit.nexus import TestNexus +from castervoice.lib.tests.testutils import MockAlternative +from castervoice.lib.tests.unit.nexus import TestNexus class TestState(TestNexus): diff --git a/caster/lib/tests/unit/textformat.py b/castervoice/lib/tests/unit/textformat.py similarity index 97% rename from caster/lib/tests/unit/textformat.py rename to castervoice/lib/tests/unit/textformat.py index 19c3c9e11..1a0465f49 100644 --- a/caster/lib/tests/unit/textformat.py +++ b/castervoice/lib/tests/unit/textformat.py @@ -1,5 +1,5 @@ import unittest -from caster.lib.textformat import TextFormat +from castervoice.lib.textformat import TextFormat class TestTextFormat(unittest.TestCase): diff --git a/caster/lib/text_utils.py b/castervoice/lib/text_utils.py similarity index 94% rename from caster/lib/text_utils.py rename to castervoice/lib/text_utils.py index 78d23ef52..a5304d7cb 100644 --- a/caster/lib/text_utils.py +++ b/castervoice/lib/text_utils.py @@ -1,8 +1,8 @@ import time -from caster.lib.actions import Key, Text -from caster.lib import settings, context +from castervoice.lib.actions import Key, Text +from castervoice.lib import settings, context def master_text_nav(mtn_mode, mtn_dir, nnavi500, extreme): ''' diff --git a/caster/lib/textformat.py b/castervoice/lib/textformat.py similarity index 98% rename from caster/lib/textformat.py rename to castervoice/lib/textformat.py index 101df6de5..c3436a027 100644 --- a/caster/lib/textformat.py +++ b/castervoice/lib/textformat.py @@ -1,7 +1,7 @@ from builtins import str -from caster.lib import settings -from caster.lib.actions import Text +from castervoice.lib import settings +from castervoice.lib.actions import Text class TextFormat(): diff --git a/caster/lib/utilities.py b/castervoice/lib/utilities.py similarity index 97% rename from caster/lib/utilities.py rename to castervoice/lib/utilities.py index 4324d762b..3db7f2607 100644 --- a/caster/lib/utilities.py +++ b/castervoice/lib/utilities.py @@ -3,13 +3,13 @@ from __future__ import print_function, unicode_literals import io -import toml import os import re import sys import traceback from __builtin__ import True from subprocess import Popen +import toml import win32gui import win32ui @@ -20,11 +20,11 @@ from dragonfly.windows.window import Window try: # Style C -- may be imported into Caster, or externally - BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "caster", 1)[0] + BASE_PATH = os.path.realpath(__file__).rsplit(os.path.sep + "castervoice", 1)[0] if BASE_PATH not in sys.path: sys.path.append(BASE_PATH) finally: - from caster.lib import settings + from castervoice.lib import settings # filename_pattern was used to determine when to update the list in the element window, # checked to see when a new file name had appeared @@ -127,7 +127,7 @@ def reboot(wsr=False): if wsr: popen_parameters.append(settings.SETTINGS["paths"]["REBOOT_PATH_WSR"]) popen_parameters.append(settings.SETTINGS["paths"]["WSR_PATH"]) - # caster path inserted too if there's a way to wake up WSR + # castervoice path inserted too if there's a way to wake up WSR else: popen_parameters.append(settings.SETTINGS["paths"]["REBOOT_PATH"]) popen_parameters.append(settings.SETTINGS["paths"]["ENGINE_PATH"]) diff --git a/requirements.txt b/requirements.txt index 17e17fb1c..82b0e3c4f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ Caster wxPython>=4.0.3 -dragonfly2>=0.10.1 +dragonfly2>=0.11.0 Pillow>=5.3.0 toml>=0.10.0 diff --git a/setup.py b/setup.py new file mode 100644 index 000000000..8ff7555f3 --- /dev/null +++ b/setup.py @@ -0,0 +1,38 @@ +import setuptools + +with open("README.md", "r") as fh: + long_description = fh.read() + +setuptools.setup( + name="castervoice", + version="0.6.8", + author="synkarius", + author_email="dconway1985@gmail.com", + description="Dragonfly-Based Voice Programming Toolkit", + long_description=long_description, + long_description_content_type="text/markdown", + url="https://github.com/dictation-toolbox/castervoice", + packages=setuptools.find_packages(), + classifiers=[ + "Programming Language :: Python :: 2", + "Operating System :: OS Independent" + ], + install_requires=[ + "dragonfly2>=0.11.0", + "wxpython>=4.0.3", + "pillow>=5.3.0", + "toml>=0.10.0", + "future" + ], + package_data={ + "castervoice": [ + "bin/data/configdebug.txt", + "bin/share/bringme.toml.defaults", + "bin/reboot.bat", + "bin/reboot_wsr.bat", + "lib/dll/tirg-dll.dll", + "asynch/sikuli/server/xmlrpc_server.sikuli/xmlrpc_server.html", + "asynch/sikuli/server/xmlrpc_server.sikuli/xmlrpc_server.py" + ] + } +)