- Issue s335: Replace os.getgrouplist() call in _stat.py with os.getgroups(), Issue s337: Fix issues in Time::HiRes on unix. Issue s347: Converting a class object to a string should change '.' to '::' - fixed in _init_package, Issue s350: Handle dynamic require statement in eval - fix _import to handle '::' as '/', Issue s359: define get() in _ArrayHash to work with negative index, define get() in _add_tie_methods for tied arrays and also define proper __getitem__, __setitem__, and __delitem__ methods, define get() for File_stat class in _stat, fix _each to work on Array objects, allow _list_of_n to work on an itertools.chain object
- Issue s311: Update _init_package to add a __bool__ method to all classes that returns True, Issue s324: Update _method_call to allow the methodname to be a function object, Issue s332: Implement promoting warnings to FATAL if WARNING is set to 2 - updates in _warn, _die, _flt, _num, _int
- Issue s301: Add _assign_meta, _store_perl_meta, and _unassign_meta to support tie/untie of scalars. Update _add_tie_methods to support tie scalar. Implement use Env. Issue s304: Add _add_tie_call. Update _add_tie_methods to handle FIRSTKEY and NEXTKEY returning the list value from _each.
- Issue s281: UNIVERSAL::isa(*FH,'GLOB') should return 1. Issue s295: script.py on windows will launch an editor if that's the associated program. Issue s297: Set CHILD_ERROR properly in _run, _run_s, and _system. Properly look up signal names in __members__ in _kill. Issue s296: Create environment variables to set perllib.TRACKBACK, perllib.AUTODIE, perllib.TRACE_RUN, perllib.WARNING. Implement in _init_package for main. Issue s280: Don't try to set the __class__ attribute in _init_package on a non-class. Issue 288: Implement new _warn. Issue s292: Reimplement _die. Implement CGI::Carp.
- Fix _ref_scalar and _ref to change '.' to '::' when returning the __name__ attribute, then change _method_call to change '::' back to '.'. Implement Time::localtime and Time::tm. Retranslate Math::Complex with new Pythonizer. Implement Time::HiRes.
- Issue s269: Fix _import to handle the case where we haven't set our package yet. Handle * for count in _pack. Implement CGI, CGI::Cookie, CGI::Util. Implement Encode via _encode, _decode, et.al. and Encode::Encoding, Encoding::MIME::Name.
- Issue s260: Rewrite _caller and _callers. Issue s244: In _store_perl_global, store a sub with both the escaped name and the unescaped name, and also call _ininit_package with is_class=True if the namespace is not a 'type'. Add Class::Struct and Text::ParseWords packages. Issue s261: Handle [:] in ArrayHash __setitem__ for slice. Issue s266: _bless: Change "'" and '::' in classname to '.'
- Issue s247: Add _exec and _execp. Fix ArrayHash to defined __contains__. Fix _add_tie_methods to handle a tie class that's both a hash and an array using a generator function. Issue s253: fix _switch to handle objects that overload the smart match (~~) operator. Issue s252: _read shouldn't raise an exception if given an int or None buffer. Issue s244: add method_type argument to _store_perl_global. Issue s259: Fix _caller and _callers to return the proper package (with some help from _init_package).
- Issue s238: Update _cmp and _spaceship to work on objects with overloaded cmp and <=> operators - _cmp also now converts non-object to str internally, Added _overload_Method, _overload_Overloaded, _overloaded_StrVal, _subname. Updated Math.Complex.py to set the new attributes we use to determine what's overloaded. Add HTML::Entities. Issue s243: Define UNIVERSAL as base class of all objects in _init_package and change the name of our _ArrayHashClass from NewCls to UNIVERSAL in ArrayHash. Issue s244: update _store_perl_global to convert a callable to a MethodType if the method name is 'new' or 'make'.
- Issue s223: Update the metaclass of our dynamically generated classes in _init_package to define a __str__ that returns the class name. Update _ref_scalar to return '' if given a class (not a class instance), Issue s225: fix _import to actually work!, fix _tie_call if passed a string instead of self, Issue s231: Implement do EXPR in _import with a new keyword parameter, implement utf8:: functions, implement blessed, Issue s203: addl fix for _init_package to properly subclass MethodType subs, skip error in ArrayHash.extend if asked to extend a hash with an empty array as it is () in the source code, which is also used for an empty hash, Issue s236: _ref now returns '' for a class (not a class instance), Issue s237: add _logical_xor
- Issue s18: Update _init_package to upgrade a SimpleNamespace to a type if we're called again and that is specified, also handle isa=... when is_class is False as inheritance still works in Perl without using bless, Issue s216: add _add_tie_methods, call it in _bless, Issue s218: change _num(object) to call _num_ if it's defined via use overload, change _init_package to define an 'is' comparison for classes and objects so == works as expected
- Issue s209: Update _init_package to put all packages in the 'main' namespace and properly handle sub-namespaces, Issue scalar ref: add _ref_scalar for the ref function on various references held in scalars
- Issue s184: Add _fetch_out_parameters for array/hash out parameters, fix _isa for Array or Hash type, Issue s198: add _list_of_at_least_n
- Issue s185: Prepped _store_out_parameter to take None for arglist
- Issue s184: Add _init_out_parameters, _store_out_parameter, and _fetch_out_parameter for supporting output parameters on functions and methods. Issue s183: Allow _perl_print to write to binary files to support binmode, fix autoflush with binmode
- Issue s176: Add _fetch_perl_global and _store_perl_global, Issue s180: add _can for $obj->can('method'), fix error in _confess and _croak if TRACEBACK is false and the pythonizer -P option is used, then Die doesn't have a suppress_traceback keyword parameter, issue s177: Add _caller_s for scalar context caller function, have _read and _sysread already return a str, never bytes, issue s183: add _openhandle function
- Issue s173: Fix File::Path to not reallocate the 'error' or 'result' arrays
- Issue s152: have _import return 1 on success, issue s154: support tie, untie, tied, issue s166: update _open_dynamic, _dup to handle <&= and >&=, and _open to convert ints to string filenames, _system should not use capture_output
- Issue s142: add Array.remove(item), issue s150: add _preprocess_arguments, _postprocess_arguments
- Issue s135: Add _filter_map
- (no library changes)
- issue s128: Added _readlink, FindBin, issue s129: Added _switch
- (no library changes)
- (no library changes)
- (no library changes)
- issue s124: perllib functions should return 1 or '', not True/False
- issue s122: IO encoding shouldn't default to UTF-8
- issue s121: localtime, gmtime, and timelocal shouldn't raise exceptions
- issue s119: Sparse extraction from array doesn't give proper results
- First production version (no changes from 0.994)
- issue s94: add _unlink, don't set OS_ERROR in _exc (used for eval errors)
- (no library changes)
- issue s105: newline at end of filename gets stripped by perl - fix in _open_
- (no library changes)
- (no library changes)
- (no library changes)
- (no library changes)
- (no library changes)
- (no library changes)
- issue s99: If you have more formats than items, you get an error in python but not perl - fix in _format_
- (no library changes)
- (no library changes)
- (no library changes)
- (no library changes)
- (no library changes)
- issue s91 - open with a dynamic single argument that does not contain a mode returns None on error instead of a closed file. Fix in _open_dynamic.
- _system, _run, and _run_s are now able to run perl and python scripts under windows
- (no library changes)
- Add _strftime
- (no library changes)
- _num(blessed object) shouldn't return 0, _bless needs to treat the result as a dict, not an object. Change method name for IO_File.open to have a trailing underscore to match the name after escape_keywords. Fix typo "fd" in _IOFile_open to "fh". perllib.close renamed to have a trailing underscore so that fh.close() doesn't cause infinite recursion.
- (no library changes)
- add _set_breakpoint
- Add _split_s for split in a scalar context. Add _splitdir, _splitpath, _curdir, and _updir from File::Spec. Add _isa. Add __contains__ in File_stat. Add _chdir and _rmdir.
- (no library changes)
- Add _readdirs to handle readdir in list context, fix _each to handle arrays properly. Fix _lstat so it actually works.
- Add _utime, fix _stat and friends to work on filehandles and dirhandles. Add _abspath for Cwd::abs_path.
- (no library changes)
- Convert variable to string in _substitute_global, _substitute_element, _translate_global, and _translate_element. Change _ref to handle object checks and add _refs to handle ref with to a scalar, array, or hash - not perfect but it's normally correct. Add _bless and enable _init_package to handle classes. Fix _list_of_n and _make_list if you pass it a single Hash(). Add _flt for specific conversions to float, like in math functions. Implement select via _select. Implement kill via _kill.
- Change Config.Config to Config.Config_h and all Dumper variables to include _v suffix to match new package var mappings in Pythonizer. Add _map_int, _map_num, _map_str. Fix _flatten to handle multiple levels. Change _longmess traceback to return '()' for args if they were changed to a list and all popped off instead of '[]'. Handle OUTPUT_FIELD_SEPARATOR and OUTPUT_RECORD_SEPARATOR in _perl_print. Fix charnames.viacode to handle 'U+' or '0x' prefix.
- Fix _init_package for package with dotted name, don't raise exceptions in -C, -A, -M, fix Array __setitem__ with slice
- Add _chop_global, _chomp_global, _chop_element, _chomp_element
- Hot fix for _fileinput_next - errors on Python older than v3.10
- Handle open layer pragmas, fix issue with translate and friends with squash option, add dclone, catfile, file_name_is_absolute, Dumper, don't raise exception on double close
- Speed up ArrayHash and Num. Have add_element and subtract_element handle non-numeric elements, turn subprocess shell=False on windows unless the command contains cmd shell chars or is a cmd built-in, fixup open of /tmp/... on windows to use the windows tempdir, don't pass effective_ids=True on windows. Have concat_element auto-convert everything to strings.
- str(ArrayHash()) changed to give '' instead of [], add EVAL_ERROR global variable, have ArrayHash() + or += work on empty value
- Don't give a close failed error on a pipe which got automatically closed, give empty result for keys(), values(), and items() on a fresh ArrayHash instead of AttributeError
- Add list_to_hash function to process key/value pairs
- Implement all options of translate (tr///)
- Fix split: A zero-width match at the beginning of EXPR never produces an empty field, fix bootstrapping issues
- Add -n: trace run, fix issue of scalar being initialized as an array
- First release on PyPI.