History¶
1.030 (2023-03-27)¶
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
1.029 (2023-03-03)¶
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
1.028 (2023-02-24)¶
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.
1.027 (2023-02-16)¶
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.
1.026 (2023-02-10)¶
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.
1.025 (2023-02-05)¶
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.
1.024 (2023-01-30)¶
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 ‘.’
1.023 (2023-01-18)¶
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).
1.022 (2023-01-06)¶
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’.
1.021 (2022-12-28)¶
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
1.020 (2022-12-20)¶
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
1.019 (2022-12-10)¶
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
1.018 (2022-12-05)¶
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
1.017 (2022-12-04)¶
Issue s185: Prepped _store_out_parameter to take None for arglist
1.016 (2022-11-30)¶
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
1.015 (2022-11-26)¶
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
1.014 (2022-11-24)¶
Issue s173: Fix File::Path to not reallocate the ‘error’ or ‘result’ arrays
1.013 (2022-11-14)¶
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
1.012 (2022-11-07)¶
Issue s142: add Array.remove(item), issue s150: add _preprocess_arguments, _postprocess_arguments
1.011 (2022-11-03)¶
Issue s135: Add _filter_map
1.010 (2022-11-03)¶
(no library changes)
1.009 (2022-10-31)¶
issue s128: Added _readlink, FindBin, issue s129: Added _switch
1.008 (2022-10-26)¶
(no library changes)
1.007 (2022-10-24)¶
(no library changes)
1.006 (2022-10-23)¶
(no library changes)
1.005 (2022-10-21)¶
issue s124: perllib functions should return 1 or ‘’, not True/False
1.004 (2022-10-19)¶
issue s122: IO encoding shouldn’t default to UTF-8
1.003 (2022-10-17)¶
issue s121: localtime, gmtime, and timelocal shouldn’t raise exceptions
1.002 (2022-10-11)¶
issue s119: Sparse extraction from array doesn’t give proper results
1.001 (2022-10-01)¶
First production version (no changes from 0.994)
0.994 (2022-09-29)¶
issue s94: add _unlink, don’t set OS_ERROR in _exc (used for eval errors)
0.993 (2022-09-26)¶
(no library changes)
0.992 (2022-09-24)¶
issue s105: newline at end of filename gets stripped by perl - fix in _open_
0.991 (2022-09-23)¶
(no library changes)
0.990 (2022-09-22)¶
(no library changes)
0.989 (2022-09-15)¶
(no library changes)
0.988 (2022-09-15)¶
(no library changes)
0.987 (2022-09-14)¶
(no library changes)
0.986 (2022-09-09)¶
(no library changes)
0.985 (2022-09-08)¶
issue s99: If you have more formats than items, you get an error in python but not perl - fix in _format_
0.984 (2022-09-08)¶
(no library changes)
0.983 (2022-09-04)¶
(no library changes)
0.982 (2022-09-02)¶
(no library changes)
0.981 (2022-08-02)¶
(no library changes)
0.980 (2022-07-28)¶
(no library changes)
0.979 (2022-07-02)¶
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.
0.978 (2022-05-12)¶
_system, _run, and _run_s are now able to run perl and python scripts under windows
0.977 (2022-04-29)¶
(no library changes)
0.976 (2022-04-28)¶
Add _strftime
0.975 (2022-04-28)¶
(no library changes)
0.974 (2022-04-21)¶
_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.
0.973 (2022-04-16)¶
(no library changes)
0.972 (2022-04-15)¶
add _set_breakpoint
0.971 (2022-04-12)¶
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.
0.970 (2022-04-10)¶
(no library changes)
0.969 (2022-04-05)¶
Add _readdirs to handle readdir in list context, fix _each to handle arrays properly. Fix _lstat so it actually works.
0.968 (2022-04-01)¶
Add _utime, fix _stat and friends to work on filehandles and dirhandles. Add _abspath for Cwd::abs_path.
0.967 (2022-03-31)¶
(no library changes)
0.966 (2022-03-20)¶
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.
0.965 (2022-03-14)¶
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.
0.964 (2022-03-10)¶
Fix _init_package for package with dotted name, don’t raise exceptions in -C, -A, -M, fix Array __setitem__ with slice
0.963 (2022-03-09)¶
Add _chop_global, _chomp_global, _chop_element, _chomp_element
0.962 (2022-03-09)¶
Hot fix for _fileinput_next - errors on Python older than v3.10
0.961 (2022-03-02)¶
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
0.960 (2022-02-28)¶
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.
0.959 (2022-02-24)¶
str(ArrayHash()) changed to give ‘’ instead of [], add EVAL_ERROR global variable, have ArrayHash() + or += work on empty value
0.958 (2022-02-23)¶
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
0.957 (2022-02-22)¶
Add list_to_hash function to process key/value pairs
0.956 (2022-02-21)¶
Implement all options of translate (tr///)
0.955 (2022-02-19)¶
Fix split: A zero-width match at the beginning of EXPR never produces an empty field, fix bootstrapping issues
0.954 (2022-02-17)¶
Add -n: trace run, fix issue of scalar being initialized as an array
0.953 (2022-02-15)¶
First release on PyPI.