Use PBR as a PEP 517 build backend Recent versions of PBR are now capable of being integrated as a build backend per the PEP 517 specification, so that the setup.py script no longer needs to be invoked directly by anything. Declaring setup_requires is now done via a new pyproject.toml file instead. This allows us to avoid some recent deprecations in SetupTools, though the file itself needs to be retained as a stub for now since it still gets imported by PBR's wrapper of the SetupTools build_meta hooks.
Update the copyright year in the LICENSE file The copyright statement in the LICENSE file is intended to cover all the files in the repository, so it should have the same end year as the most recently edited files.
Drop section numbering from documentation builds Sphinx section numbering leads to confusing output, particularly for the rendered ChangeLog. Remove it. Update copyright year in the LICENSE as this is the first change of the new year, and similarly update it in rendered documentation footers as this is the first documentation change of the year.
Add 2019 to copyright for docs and license A new year is upon us, and changes committed in 2019 warrant increasing the copyright range for documentation and the full license text to indicate that.
Generalize copyright headers in files Since we're distributing an AUTHORS file even in wheel packages now replace the specific copyright strings with ones which generally mention "mudpy authors" instead, refer to the AUTHORS file and Git history from the LICENSE file, and embed the generated list of authors in rendered versions of the license.
Update copyright year in LICENSE As the LICENSE file carries a general copyright for the whole project, update the year range to reflect the changes which have been made in 2018.
Switch to extensionless README and LICENSE files Since the README and LICENSE files are going to get included into reStructuredText files for documentation rendering, they don't really need .rst extensions and this keeps them more consistent with the AUTHORS and ChangeLog files generated by PBR.
Imported from archive. * LICENSE: Moved to doc subdirectory, indicating it's a documentation file. * archetype, command, menu: Moved to share subdirectory, indicating it's generally read-only data. Also appended .mpy extention to file names, to indicate they're mudpy data. * banner.txt, login.txt, mudpy.conf: Moved to etc subdirectory, indicating they're generally hand-edited configuration data. * lib/mudpy/__init__.py: Created a new Python module package, to begin the process of splitting up the old monolithic module. * mudpy: Moved to bin subdirectory, indicating it's directly executable. * mudpy.conf (__control__, internal:storage), mudpy.py (DataFile.load, find_file, replace_macros): New functionality allows arbitrary location of data files from relative or absolute paths out of a prioritized series of potential directory trees. * mudpy.conf (internal:network): Changed host to the IPv6 localhost address of ::1 instead of the old IPv4 127.0.0.1 equivalent. * mudpy.py: Renamed to misc.py and added to the new lib/mudpy Python module package. (Universe.initialize_server_socket): If local IPv6 support is present default to listening on ::, otherwise fall back to 0.0.0.0 like before. (command_say): Instead of denying parameters which look like replacement macros, they are simply escaped before being processed. Messages enclosed in quotation marks no longer get language fix-ups applied. Fixed a bug where a type exception could be triggered if an actor provided parameters to the say command which evaluated to an empty string; reported by Mark Kolloros, a.k.a. Colourful. * sample/index: Renamed to __init__.mpy in an effort to emulate Python module package structure for groups of mudpy data files. * sample/location, sample/prop: Appended .mpy extention to file names, to indicate they're mudpy data.
Imported from archive. * (all): Updated copyright notices for 2009. * mudpy, mudpy.py: Changed all Python module references to be explicit rather than importing their contents into the local namespace, and moved all the import statements into the objects requiring them. Made all code Unicode clean, UTF-8 encoded, and marked relevant byte-oriented code in preparation for later Python 2to3 migration. Wrapped all code at 79 columns and changed to three-space/non-tab indents with K&R-style bracketing. Moved more code from the mudpy executable into mudpy.py instead. * mudpy.py (User.flush): Added some verbose logging when an exception is raised sending to a socket. (User.negotiate_telnet_options): Reworked the Telnet stack into an RFC 1143 option negotiation queue. Implemented support for binary mode input and output RFC 856 and made the UTF-8 decoding and encoding/substitution dependent on it. Implemented support for negotiate about windows size RFC 1073 and changed the word-wrapping routines to use the client's terminal width if available. (glyph_columns, wrap_ansi_text): Improved word-wrapping to support East Asian Width characters, which occupy two columns instead of just one. * example, sample: Replaced Example data with more generic sample data.
Imported from archive. * (all): Updated copyright notices for 2008, and added references to the included LICENSE file. Added similar copyright notices to all data/document files. * LICENSE: Switched the project from modified 2-clause BSD license to the simpler and equivalent ISC license. * banner.txt, login.txt, menu (menu:entering_account_name) (menu:main_utility): Implemented text file inclusion using a file replacement macro, and relocated the ASCII/ANSI art from the login/lobby menu descriptions into separate login.txt and banner.txt files. * command (command:show): Renamed parameter to option in the help. * menu (menu:delete_avatar): Corrected a misleading typo in the desription. * mudpy.conf (internal:time), mudpy.py (User.__init__) (User.check_idle, User.pulse, handle_user_input): Added idle and linkdead dict facets, indicating how long users can idle in various states before they're warned and ultimately disconnected. * mudpy.py (replace_macros): Performance enhancement, moving unnecessary declarations outside the processing loop. (wrap_ansi_text): Refactored the word-wrapping routines to solve a bug where lines explicitly terminated at the wrap column got wrapped early.
Imported from archive. * LICENSE, mudpy, mudpy.py: Altered the copyright statements to correctly mention all years instead of only the most recent. * command (command:chat, command:say), mydpy.py (User.send) (command_chat, first_word, handler_active): Added a chat command which toggles the avatar in and out of a mode where all further lines of input are passed as parameters to the say command. * command (command:quit): Minor clarifications to several command help texts. * command (command:say), mudpy.conf (internal:language), mudpy.py (command_say): Moved the capitalize_words list facet to a more flexible typos dict, and condensed punctuation_* facets into an actions dict facet. * mudpy.py (User.deactivate_avatar): Fixed a bug where avatars without a location could trigger an exception. (command_help): Added a see_also list facet for menu elements, which allow help output to suggest other related commands. (create_pidfile, remove_pidfile): Minor adjustments to assure file path canonicalization. (get_loglines): Aesthetic tweaks to the show log output. (on_pulse): Create internal:counters if it doesn't exist, to avoid throwing an exception.
Imported from archive. * LICENSE, mudpy, mudpy.py: Updated copyright notices for 2006. * mudpy, mudpy.conf (internal:process), mudpy.py (create_pidfile) (daemonize, remove_pidfile): Implemented optional fork-and-disassociate daemon capability. * mudpy.conf (internal:network), mudpy.py (Universe.initialize_server_socket): Now, if the host facet is unset, it defaults to 0.0.0.0 (listen on all available IP interfaces). * mudpy.py (Element.clean_contents, Element.reload) (Element.update_location, Universe.load, reload_data): Additional Element methods to clean up data file reloading. (sighook): Added a signal handler to interpret hangup as if an admin had executed the reload command, and term as if the halt command had been issued.
Imported from archive. * all files: Lower-cased any MUDpy references to mudpy throughout the code. * muff: Collapsed the Python module package directory into a single mudpy.py module for now, to simplify on-the-fly source code reloading functionality (this will be re-split in a more effective fashion later). * testdata: New example data file with generic contents.
Imported from archive. * bin/muff, lib/muff: Replaced the embedded license copies with pointers to the LICENSE file. Added lots of in-line code commentary and docstrings. Refactored some blocks of code for improved readability. * bin/muff, etc/mudpy.conf: Moved to the top-level directory. * doc/license: Renamed to LICENSE and moved it to the top-level directory. * lib/muff/muffcmds.py (command_null): Removed. (command_say): Additional output cleanup. * lib/muff/muffmain.py (main): More robust handling for variable files. * lib/muff/muffmisc.py (wrap_ansi_text): Minor word-wrapping fix. (User.__init__): Added tracking of last login address.