Package: pycrossword
pycrossword - the Python Crossword Puzzle Generator and Editorpycrosswordis a pure-Python implementation of a crossword puzzle generator and editor.Downloadpycrosswordsource code and documentation are hosted onGithubThe python package is available fromPyPiFeatures:full-fledgedQt 5based GUIcross-platform implementationmultilingual interfacefully Unicode-basedopen, save, restore, export, and import crossword puzzlespowerful word sources: SQLite database / CSV (plaintext) / raw python listunlimited undo / redo historycustomizable word blacklistingcrossword generation (from word sources)supports common puzzle file formats:XPF,IPUZand raw text grideasily load, edit and save word cluesflexible GUI settings: zoom, colors, fonts, grid settings, clues table look & feel, etc.import & export configuration presets (JSON-based files)auto app updating / new release checking from Github / PyPIlookup word definition in an online dictionary and Googlemanual editing of individual words and suggestions from word sourcescomfortable navigation in GUI (hotkeys, keystrokes, mouse)multi-character editingextensive grid editing (row / column / cell manipulation, block duplication etc.)context menushi-res printing to PDF or printer with customizable page / element layoutexport crossword to image (jpg, png, tiff) / PDF / SVG with customizable resolution and other settingsstore crosswords in cloud and share them in social networks (Twitter, Facebook, Instagram etc.)view user-friendly stats on current crossword in chartinbuilt web browser and Python code editorapp extension through external and custom plugins (Python API included)comprehensive Doxygen-generated API reference and rich help documentationInstallationRequirementsYou must have the following applications / packages installed in your system:Python 3.7+ (the app was written and tested with Python 3.7.4 and 3.8.0)Python packages:pipPyQt5>=5.14QScintilla>=2.11jedi>=0.16yapsy>=1.12requestsnumpypandasaltairGit (should be pre-installed on most modern Linux and Mac systems, alternatively install from thegit website)The latter two (packages and Git) are not actually required if you opt for the PyPi (pip) installation variant as described below.Installation optionsChoose one of the two installation options.1. Clone repo- copy entire source code with version control historyTo get the latest (non-stable) version, run:gitclonehttps://github.com/S0mbre/crossword.git.This will checkout to themasterbranch which tracks all recent changes, some of which may not be yet merged into a release version.To get the latest stable version, run:gitclonehttps://github.com/S0mbre/crossword.git.
gitreset--hardlatestThis will checkout to the branch pointed at by thelatesttag which will always be the latest stable release.Install the required packagesI recommend (as many do) installing packages into python's virtual environment usingvirtualenvor the inbuiltvenv:Create a new virtual environment:Linux / Maccdmyprojects
venvpycrosscdpycross
../bin/activateWindowscdmyprojects
venvpycrosscdpycross
scripts\activate.batThis step is, of course, optional. You can skip it if you don't want to use virtual environments for some reason or other.Then just run:cdcrossword
python-mpipinstall-rrequirements.txtIf you're using a virtual environment, you can deactivate it after closing the app withdeactivate.2. Install from PyPiCreate your virtual environment as described above (which is again optional). Then usepipto download and installpycrossword(together with the required additional packages):pip install --upgrade pycrosswordUsageRunpycrosson Linux/Mac orpycross.baton Windows to launch the pycrossword UI app. This should work both with and without the Python virtual environment.To launch the app manually, runpython cwordg.py [optional command-line params]from your pycross/ directory.The command-line parameters that can be passed to cwordg.py are as follows:-sor--settings+"path to *.pxjson settings file": load app from a preset (configuration file)-oor--open+"path to crossword file": open a crossword file (*.xpf or *.ipuz)-nor--new: create a new crossword on startup (see creation parameters below)--cols: number of columns in the new crossword (default = 15)--rows: number of rows in the new crossword (default = 15)--pattern: pattern number for the new crossword (one of 1...6, default = 1)-eor--empty: don't open or create a crossword-aor--addsrc+"{source data}": add a word source (see forms.py/WordSrcDialog for description of the source data structure)Alternativaly, you can register the pycrossword file associations at initial run (go toSettings>Common>Register file associations). After that, you can launch the app by double-clicking crossword files (like *.xpf or *.ipuz) or settings files (*.pxjson)See User Guide for detailed usage.RoadmapSeeroadmap.txtfor future plans!