- 29 Nov, 2021 2 commits
-
-
Charles Ferguson authored
A number of types, such as Dict views are not handled better, partially due to the collections.abc change, and partially because these are now visible in Python 3 where they were not in Python 2.
-
Charles Ferguson authored
Collections.abc now collects a number of types - Callable and Iterable in particular - which we use. These can be made to work with some more conditional code.
-
- 26 Nov, 2019 1 commit
-
-
Charles Ferguson authored
In places the string version of the FrameFunction was giving us a expanded version, where we might not expect it - adding the parameters to the function name. Disabling this within the options is pretty simple, and makes it possible to rely on the original behaviour of the return value.
-
- 13 Nov, 2019 2 commits
-
-
Charles Ferguson authored
Classes not derived from object do not have an __class__ attribute so we need to cope with this.
-
Charles Ferguson authored
inspect.getmembers can fail on objects if they have a __get__ method on members which raises an exception. This happens in the six module when the lazy importing code is triggered, which causes a failure if the import cannot work (as is the case with tkinter). We fall back to just reporting that there are no members, which will cause the presentation to default to its 'function name only', rather than the full path naming, but will at least be safe.
-
- 20 Oct, 2019 3 commits
-
-
Charles Ferguson authored
It is now possible to cause class constants - values which are present in an object which are the same as the class member of the same name - to be hidden in the output. This can reduce the size of the output by hiding information that can be obtained from the source itself. Long lists and dictionaries are another place where the output can become cluttered, and it is unlikely that the reader will want to check the values beyond basic members of a dictionary, so these values can be truncated as well - they would be truncated at the non-string limit anyhow. Because the truncation happens at the item level, as well as the total string level, individual items which are very long can be kept from swamping the output. Additionally, the enumeration only happens for sufficient items to meet the configuration, so the whole dictionary or list does not have its representation generated only to be truncated.
-
Charles Ferguson authored
A small fix for the issues with the repr on StyledString not being reported properly.
-
Charles Ferguson authored
Check for exceptions in the shell code and cause an exit with a status code of 1.
-
- 12 Oct, 2019 5 commits
-
-
Charles Ferguson authored
It seems that the old style setup.py includes wasn't working properly.
-
Charles Ferguson authored
-
Charles Ferguson authored
-
Charles Ferguson authored
-
Charles Ferguson authored
I'm trying to get the code to a point where it's suitable for uploading to PyPI. Some of these files might be right; others might not, but right now it's looking like it's got most of the right things in it.
-
- 27 Jul, 2019 1 commit
-
-
Charles Ferguson authored
When printing integers, it's useful to know what the hex value or whether it is a specific bit. It won't hurt if you're not caring about those values, but if you are, it's a lot easier than having to convert them either in your head or starting up python to print them!
-
- 06 Jun, 2019 1 commit
-
-
Charles Ferguson authored
Lambda and Generator functions are handled better. Class methods are detected slightly differently (but likely won't actually be any more reliable - functions are returned for many results).
-
- 02 Jun, 2019 1 commit
-
-
Charles Ferguson authored
CodeNaming didn't have any tests, and could fail badly, which caused the backtrace to report terminal errors. There is a test for one of the functions in the CodeNaming which was giving problems - it should be expanded as we find other issues, or when we need to report different messages.
-
- 22 Apr, 2019 1 commit
-
-
Charles Ferguson authored
CI updated to the latest version, and updated the linting to use the most recent pylintrc; with an annotation of an import that appears to hide the top level longtraceback module but it'll be doing the right thing anyhow.
-
- 21 Apr, 2019 1 commit
-
-
Charles Ferguson authored
-
- 09 Apr, 2019 1 commit
-
-
Charles Ferguson authored
The `experimental_repr` option enables the patching that gives more information on the objects that we list. It's not perfect, but it's got some useful features.
-
- 26 Mar, 2019 3 commits
-
-
Charles Ferguson authored
Errors whilst trying to process 'repr' will end up being shown as an inline message (not through the error reporting system). This means that the output might not match up quite so nicely with what we hope to see, but it could help with some debugging.
-
Charles Ferguson authored
There's no point in saying that this is an 'InteractiveConsole' as the implementation isn't important. Better to say that it's Python with the vesion number, which is closer to the standard version.
-
Charles Ferguson authored
The 'imp' module is going away, to be reokaced by the 'importlib' module. However, importlib, doesn't provide the 'new_module' support that we require for starting the main environment. For simplicity, this has been replaced with 'types.ModuleType', rather than going through the Python 3.x interfaces of locating a spec (which seems to not be possible for a null case). This suffices for most cases; those cases of loading through a loader like the Zip file, won't be handled, but then I've never needed them.
-
- 24 Mar, 2019 1 commit
-
-
Charles Ferguson authored
In Python 2.7, the PWD was appearing as '' in the path, whilst in Python 3.x, it appears as an absolute path. The former is not actually the PWD, and would change in behaviour if the user changed directory. The latter is more correct, and we reproduce this behaviour in the shell for all versions of Python we're used with, so that we remain consistent across versions. Even though that means that the shell will differ from the regular python shell, I think that is more sane- and anyhow, Python 2.7 is end of life so I think moving to the Python 3.x way of working is more sane.
-
- 28 Jan, 2019 1 commit
-
-
Charles Ferguson authored
ReprPatching isn't used at present, but if it were, it now handles the regular expression pattern and match objects to give useful repr output.
-
- 31 Dec, 2018 1 commit
-
-
Charles Ferguson authored
-
- 30 Dec, 2018 1 commit
-
-
Charles Ferguson authored
-
- 28 Dec, 2018 3 commits
-
-
Charles Ferguson authored
Small warning about a method possibly being a function.
-
Charles Ferguson authored
-
Charles Ferguson authored
Collecting artifacts only on failure isn't so helpful; we should pick them up all the time.
-
- 24 Dec, 2018 1 commit
-
-
Charles Ferguson authored
If the frames filter list was empty, the checks for the end of the list would generate an exception. A check added to shortcut this.
-
- 24 Sep, 2018 2 commits
-
-
Charles Ferguson authored
Attempt to get some junit results.
-
Charles Ferguson authored
-
- 18 Sep, 2018 1 commit
-
-
Charles Ferguson authored
In python 3, the 'U' opening modifier is now deprecated. It's only really necessary on Python 2 anyhow, so make the behaviour safe on both (without warnings on Python 3).
-
- 13 Aug, 2018 5 commits
-
-
Charles Ferguson authored
Non-ascii strings were not being handled properly - although a lot of the code was safe for handling the non-ascii string values, there were some places which weren't handled properly - mostly in the StyledString code. This has now been updated so that it works more like we expect. It should now mean that we can report unicode strings and UTF-8 strings properly in Python 2.7, and be sure to encode them properly in Python 3+.
-
Charles Ferguson authored
Better handling of Unicode/UTF-8 characters in Python 2.7.
-
Charles Ferguson authored
The changed resolution order for files meant that the import didn't work - now explicitly given a path.
-
Charles Ferguson authored
Paste and others have special markers for the exclusion of frames from the backtrace.
-
Charles Ferguson authored
Styled string has been updated to have more tests and should be able to report more problems. Unlikely that it'll cause any problems, but it's good to keep it up to date.
-
- 04 Aug, 2018 1 commit
-
-
Charles Ferguson authored
When used within a threading environment, the race condition during the creation of the singleton used in ReduceFilename causes aborts in the constructor. This is awkward for us because it means that it is very easy for us to end up with a crash if two tracebacks try to happen at the same time. Fortunately, putting a lock around that code should make it safe enough to use, I think.
-
- 25 Jun, 2018 1 commit
-
-
Charles Ferguson authored
When used within Python 3, the extract_* functions are actually returning an object containing the elements, which returns as a tuple. In order to support both the Python 2 and Python 3 usages, we use a namedtuple to allow the interface to work whether indexed or by name. The 'locals' parameter is currently ignored and always returns None.
-