Skip to content

Commit 5ff7fbd

Browse files
committed
fetched editor changelog for 0.35
1 parent bfb05f9 commit 5ff7fbd

File tree

1 file changed

+148
-0
lines changed

1 file changed

+148
-0
lines changed
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
.. py:currentmodule:: larray_editor
2+
3+
New features
4+
^^^^^^^^^^^^
5+
6+
* allow displaying *many* more different kinds of objects, and not only arrays
7+
from larray. One specific goal when developing this new feature was speed.
8+
Most of these viewers should be fast (when at all possible), even on (very)
9+
large datasets. We only support displaying (not editing) all the new types.
10+
11+
The following types are supported so far (but adding more is relatively easy):
12+
13+
* Python builtin objects:
14+
- tuple (including named tuple), list (sequences), dict (mappings),
15+
dict views, memoryview and array
16+
- text and binary files
17+
* Python stdlib objects:
18+
- pathlib.Path
19+
* if the path points to a directory, it will display the content of the
20+
directory
21+
* if the path points to a file, it will try to display it, if we
22+
implemented support for that file type (see below for the list
23+
of supported types).
24+
- sqlite3.Connection (and their tables)
25+
- pstats.Stats (results of Python's profiler)
26+
- zipfile.ZipFile and zipfile.Path
27+
* new objects from LArray: Axis, Excel Workbook (what you get from
28+
larray.open_excel()), Sheets and Range
29+
* IODE "collections" objects: Comments, Equations, Identities, Lists, Tables,
30+
Scalars and Variables, as well as Table objects
31+
* Pandas: DataFrame, Series and DataFrameGroupBy
32+
* Polars: DataFrame and LazyFrame
33+
* Numpy: ndarray
34+
* PyArrow: Array, Table, RecordBatchFileReader (reader object for feather
35+
files) and ParquetFile
36+
* Narwhals: DataFrame and LazyFrame
37+
* PyTables: File, Group (with special support for Pandas DataFrames written
38+
in HDF files), Array and Table
39+
* IBIS: Table
40+
* DuckDB: DuckDBPyConnection and DuckDBPyRelation (what you receive from any
41+
query)
42+
43+
File types (extensions) currently supported:
44+
- Iode files: .ac, .ae, .ai, .al, .as, .at, .av, .cmt, .eqs, .idt, .lst,
45+
.scl, .tbl, .var
46+
- Text files: .bat, .c, .cfg, .cpp, .h, .htm, .html, .ini, .log, .md,
47+
.py, .pyx, .pxd, .rep, .rst, .sh, .sql, .toml, .txt, .wsgi,
48+
.yaml, .yml
49+
- HDF5 files: .h5, .hdf
50+
- Parquet files: .parquet
51+
- Stata files: .dta
52+
- Feather files: .feather
53+
- SAS files: .sas7bdat
54+
It is limited to the first few thousand rows (the exact number depends on
55+
the number of columns), because reading later rows get increasingly slow,
56+
to the point of being unusable.
57+
- CSV files: .csv
58+
- Gzipped CSV files: .csv.gz
59+
- Excel files: .xls, .xlsx
60+
- Zip files: .zip
61+
- DuckDB files: .ddb, .duckdb
62+
63+
* the editor now features a new "File Explorer" (accessible from the "File"
64+
menu) so that one can more easily make use of all the above file viewers.
65+
66+
* added a new SQL Console (next to the iPython console) for querying Polars
67+
structures (DataFrame, LazyFrame and Series) as SQL tables. The console
68+
features auto-completion for SQL keywords, table names and column names
69+
and stores the last 1000 queries (even across sessions). Recalling a query
70+
from history is done with the up and down arrows and like in the iPython
71+
console, it searches through history with the current command as prefix.
72+
This console will only be present if the polars module is installed.
73+
74+
* allow sorting some objects by column by pressing on an horizontal label.
75+
This is currently implemented for the following objects:
76+
- python built-in sequences (e.g. tuples and lists)
77+
- python pathlib.Path objects representing directories
78+
- LArray (only for 2D arrays)
79+
- Pandas DataFrame
80+
- Polars DataFrame and LazyFrame
81+
- Narwhals LazyFrame
82+
- SQLite tables
83+
- DuckDB relations
84+
85+
* allow filtering some objects by pressing on an horizontal label.
86+
This is currently implemented for the following objects:
87+
- Pandas DataFrame
88+
- Polars DataFrame and LazyFrame
89+
- DuckDB relations
90+
91+
* allow comparing arrays/sessions with different axes in :py:obj:`compare()`.
92+
The function gained ``align`` and ``fill_value`` arguments and the interface
93+
has a new combobox to change the alignment method during the comparison:
94+
- outer: will use a label if it is in any array (ordered like the first array).
95+
This is the default as it results in no information loss.
96+
- inner: will use a label if it is in all arrays (ordered like the first array).
97+
- left: will use the first array axis labels.
98+
- right: will use the last array axis labels.
99+
- exact: raise an error when axes are not equal.
100+
Closes :editor_issue:`214` and :editor_issue:`251`.
101+
102+
* double-clicking on a name in the variable list will open it in a new window
103+
(closes :editor_issue:`143`).
104+
105+
106+
Miscellaneous improvements
107+
^^^^^^^^^^^^^^^^^^^^^^^^^^
108+
109+
* made the editor interruptible by an outside program (i.e. made PyCharm stop &
110+
restart buttons work directly instead of only when the editor receives the
111+
focus again). Closes :editor_issue:`257`.
112+
113+
* resize axes and vertical label columns automatically
114+
115+
* string values are left aligned instead of right aligned
116+
117+
* when comparing sessions via :py:obj:`compare()`, the color of arrays in the
118+
list is now updated depending on the tolerance. To reflect that the tolerance
119+
widget moved to the top of the interface. Closes :editor_issue:`201`.
120+
121+
* :py:obj:`compare()` max difference is colored red when the difference is not 0
122+
123+
* typing the name of a variable holding a matplotlib figure (or axes) in the
124+
console shows it (previously, only expressions were displayed and *not*
125+
simple variables). For example: ::
126+
127+
>>> arr.plot()
128+
129+
already displayed a plot, but: ::
130+
131+
>>> ax = arr.plot()
132+
>>> ax
133+
134+
did not.
135+
136+
* display matplotlib Figure objects in addition to Axes objects
137+
138+
139+
Fixes
140+
^^^^^
141+
142+
* fixed :py:obj:`compare()` colors when the only difference is nans on either
143+
side.
144+
145+
* fixed :py:obj:`compare()` colors and max difference label when the only
146+
differences are for rows where the value is 0 in the first array.
147+
148+
* fixed single column plot in viewer when ticks are not strings

0 commit comments

Comments
 (0)