[HN Gopher] Pyspread - Pythonic Spreadsheet
___________________________________________________________________
Pyspread - Pythonic Spreadsheet
Author : Qem
Score : 238 points
Date : 2024-05-07 11:08 UTC (11 hours ago)
(HTM) web link (pyspread.gitlab.io)
(TXT) w3m dump (pyspread.gitlab.io)
| frognumber wrote:
| This looks a very good idea.
|
| This would be an ideal place for a semi-technical user to
| contribute documentation. Good starter open-source contribution.
| Without that, it's hard to figure out if it would work for me,
| let alone give feedback.
| sevagh wrote:
| Every dev here loves throwing unglamorous volunteer work to
| non-developers, acting as if it's a favor.
| blitzar wrote:
| "You will be paid in exposure" - this is where the venn
| diagram for devs & social media influencers intersect.
| psychoslave wrote:
| So what, who want raw wild naked large exposure? If you
| don't get an army of free PR specialists, lawyers and body
| guards to protect you and your beloved ones h24 every
| single day for the rest your lives, it's an obviously net
| negative situation.
| jjmarr wrote:
| Except when you contribute to open-source, you typically
| have a legal document (the licence) that explains _how_ the
| exposure will be paid.
| JulianChastain wrote:
| Some of the motivation for this comes from how often devs
| want to contribute to open source but are intimidated by how
| difficult the barrier of entry is, particularly for large
| projects. It's surprisingly hard to find a good list of
| projects that a beginner or even intermediate programmer can
| substantially contribute to. The ones that do exist tend to
| have the low hanging fruit plucked pretty quickly.
| frognumber wrote:
| A few points:
|
| - Most of my career was made by being the author of one
| popular open source platform which happened to do well.
|
| - I've recruited people based on open-source contributions.
| If I want an expert in [X], finding someone who contributed
| to [X] is a good bet.
|
| - The flip side is I've made (minor, helpful) contributions
| to many projects in part for exposure. My name is in the
| commit list of many systems in domains where I have wanted
| to work.
|
| - Many mid-sized contributions look good on a resume,
| especially for a junior developer. Indeed, I've made one
| case to promote someone based, in part, on contributing to
| a library we were using (even if only tangentially).
|
| If you want a job in e.g. network security, find something
| in a firewall, anonymzing proxy, packet sniffer, or
| whatnot, and make a PR. It's often quick, easy, and
| helpful. A corollary is you do actually learn a lot about a
| system by contributing.
|
| I have no axe to grind here, but I think the cynicism is
| unwarranted.
| sevagh wrote:
| I love open source. My cynicism isn't about open-source,
| but about the OP's first post being "these docs suck,
| _snaps fingers_ maybe one of you non-devs can work on it.
| "
| frognumber wrote:
| Good life lesson: You don't know until you ask.
|
| That's more a salesperson mantra than SWE, where for
| every 10-100 people you ask, someone buys something.
| However, I've raised money many times simply by
| shamelessly asking.
|
| Second good life lesson: Don't assume things about
| others.
|
| People who make $1/day, $10/day, $100/day, $1000/day,
| $10,000/day, etc. have fundamentally different priorities
| and motivations. Ditto on many other axes. Good synergies
| are leveraged working across such differences.
| resource_waste wrote:
| >Every dev here loves doing volunteer work as a favor.
|
| Devs are expected to contribute to FOSS, write free
| educational blog posts about technology, and fix your friends
| computer!
|
| Ask a doctor why something hurts and they tell you to come
| into their office and insurance will bill you.
| sevagh wrote:
| This sounds made up tbh. I mean, I agree it's common to
| feel this "pressure" but the day you discover the pressure
| isn't real is the day you level up. And I charge plenty for
| fixing peoples' software pains.
|
| I do open-source and write blog posts to satisfy my own
| desire to publicize my work, and for exposure, and to put
| my skills on display. Not as a race to the bottom. I could
| have had a career without those things.
| photochemsyn wrote:
| pandas has a good documentation model for installation and
| usage:
|
| https://pandas.pydata.org/docs/getting_started/install.html
|
| https://pandas.pydata.org/docs/user_guide/10min.html
| rbanffy wrote:
| The Gods have listened to me!
| kwhitefoot wrote:
| I tried to install, and discovered yet again why I fell out of
| love with Python.
|
| Executing:
|
| pip3 install -r requirements.txt
|
| gave this error:
|
| " Traceback (most recent call last): File "/tmp/tmprhazpypn",
| line 126, in prepare_metadata_for_build_wheel hook =
| backend.prepare_metadata_for_build_wheel AttributeError: module
| 'sipbuild.api' has no attribute
| 'prepare_metadata_for_build_wheel'
|
| ...
|
| ERROR: Command errored out with exit status 1: /usr/bin/python3
| /tmp/tmprhazpypn prepare_metadata_for_build_wheel
| /tmp/tmpl72s0sfd Check the logs for full command output."
|
| I'm on Linux Mint 19.
| kreddor wrote:
| I tried to install it on ubuntu 22.04 and got a different error
| using pip. I'm not experienced enough with Python to quickly
| figure out how to proceed. It's a shame it isn't easier to
| install.
| amias wrote:
| stop trying to use the system python for application
| development. You will break your OS and you will make your code
| machine specific. Go read up on Virtual Envs , you were the
| problem here.
| tupolef wrote:
| And for the lazy ones, pipx uses Virtual Envs and can install
| most things from a path, an archive or a package name.
| Install pipx and check pipx install --help.
| evilduck wrote:
| Python has like a dozen competing solutions in their package
| management space. Python is clearly the problem, not the
| user.
|
| Their docs don't say that, they advertise exactly what the GP
| ran. Python needs to unfuck its ecosystem.
| smaudet wrote:
| Yeah they kinda screwed the pooch on that.
|
| That being said, venv is the official solution, and it
| works fairly well. pipenv/pipx are some alternatives...but
| yeah.
|
| What exactly is your system installation for if you aren't
| supposed to install anything to it? The package system
| should be able to attempt installing via venv or be able to
| block uncompatible packages with sane error messages.
| adolph wrote:
| venv not always a panacea for system python $
| docker run --rm -it python bash [...]
| root@211646f0fa99:/# which python /usr/local/bin/python
| root@211646f0fa99:/# python -m venv .venv
| root@211646f0fa99:/# source .venv/bin/activate
| (.venv) root@211646f0fa99:/# which python
| /.venv/bin/python (.venv) root@211646f0fa99:/# ls
| -l "$(which python)" lrwxrwxrwx 1 root root 21 May 7
| 14:47 /.venv/bin/python -> /usr/local/bin/python
| metadat wrote:
| Correct, virtualenv isolates package installation but
| doesn't handle installing or managing arbitrary Python
| versions.
|
| Node.js is similar with npm.
|
| Is there something like nvm but for Python?
| djd20 wrote:
| Try pyenv - very handy, includes funkier editions like
| pypy
| kwhitefoot wrote:
| Why is this directed at me? I'm not the one doing the
| software development, I was just trying to install an
| application.
| UncleEntity wrote:
| > stop trying to use the system python for application
| development.
|
| Umm... who exactly makes sure the app runs correctly with the
| version of python installed by the system?
|
| I, for one, aren't going to bump up a python version to run a
| single app in a virtual environment because some dev decided
| to use 'python nightly' to code against.
| sensen7 wrote:
| If venvs were a reasonable solution here, presumably the
| pyspread authors would have included them in the installation
| instructions. Instead they just say to "pip install", which
| predictably does not work for most people. It sounds a bit
| unfair to tell someone that "they're the problem" when they
| followed the official installation instructions to the
| letter. I would agree in classifying this as another case of
| python developers being unable to provide a working way to
| install their software (if code that the average person can't
| even get to execute can even be called "software".)
| Qem wrote:
| Under Fedora 39 I was able to pip install and run it withhout
| problems, inside a venv environment:
| (pyspread) [xxxx@fedora ~]$ pip install pyspread
| Collecting pyspread Obtaining dependency information
| for pyspread from https://files.pythonhosted.org/packages/a5/e2
| /19ddb20b46ae46f11102f9095bf5bf00cb28cc79b35f38257f84a98ecd1d/p
| yspread-2.2.3-py3-none-any.whl.metadata Downloading
| pyspread-2.2.3-py3-none-any.whl.metadata (4.8 kB)
| Collecting PyQt5>=5.10 (from pyspread) Obtaining
| dependency information for PyQt5>=5.10 from https://files.pytho
| nhosted.org/packages/2f/e6/a1f9853e4933c312c6de9c79d126c7d92ef6
| 9ae0e53895fb1ceb0ecc77a6/PyQt5-5.15.10-cp37-abi3-manylinux_2_17
| _x86_64.whl.metadata Downloading
| PyQt5-5.15.10-cp37-abi3-manylinux_2_17_x86_64.whl.metadata (2.1
| kB) Collecting markdown2>=2.3 (from pyspread)
| Obtaining dependency information for markdown2>=2.3 from https:
| //files.pythonhosted.org/packages/5a/09/a9ef8d5fe4b08bfd0dd1330
| 84deefcffc4b2a37a9ca35a22b48622d59262/markdown2-2.4.13-py2.py3-
| none-any.whl.metadata Downloading
| markdown2-2.4.13-py2.py3-none-any.whl.metadata (2.0 kB)
| Collecting numpy>=1.1 (from pyspread) Obtaining
| dependency information for numpy>=1.1 from https://files.python
| hosted.org/packages/0f/50/de23fde84e45f5c4fda2488c759b69990fd45
| 12387a8632860f3ac9cd225/numpy-1.26.4-cp312-cp312-manylinux_2_17
| _x86_64.manylinux2014_x86_64.whl.metadata Downloading
| numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x8
| 6_64.whl.metadata (61 kB)
| --------------------------------------- 61.0/61.0 kB 311.8 kB/s
| eta 0:00:00 Collecting setuptools>=40.0 (from pyspread)
| Obtaining dependency information for setuptools>=40.0 from http
| s://files.pythonhosted.org/packages/f7/29/13965af254e3373bceae8
| fb9a0e6ea0d0e571171b80d6646932131d6439b/setuptools-69.5.1-py3-n
| one-any.whl.metadata Downloading
| setuptools-69.5.1-py3-none-any.whl.metadata (6.2 kB)
| Collecting PyQt5-sip<13,>=12.13 (from PyQt5>=5.10->pyspread)
| Obtaining dependency information for PyQt5-sip<13,>=12.13 from
| https://files.pythonhosted.org/packages/3c/ab/f8f1e970768fcb4ab
| 118d4aabbfcb9b7f781088b71e1f26d813fd51c4701/PyQt5_sip-12.13.0-c
| p312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.whl.metadata
| Downloading PyQt5_sip-12.13.0-cp312-cp312-manylinux_2_5_x86_64.
| manylinux1_x86_64.whl.metadata (504 bytes) Collecting
| PyQt5-Qt5>=5.15.2 (from PyQt5>=5.10->pyspread)
| Obtaining dependency information for PyQt5-Qt5>=5.15.2 from htt
| ps://files.pythonhosted.org/packages/83/d4/241a6a518d0bcf0a9fcd
| cbad5edfed18d43e884317eab8d5230a2b27e206/PyQt5_Qt5-5.15.2-py3-n
| one-manylinux2014_x86_64.whl.metadata Downloading
| PyQt5_Qt5-5.15.2-py3-none-manylinux2014_x86_64.whl.metadata
| (535 bytes) Downloading pyspread-2.2.3-py3-none-any.whl
| (1.7 MB) ----------------------------------------
| 1.7/1.7 MB 2.7 MB/s eta 0:00:00 Downloading
| markdown2-2.4.13-py2.py3-none-any.whl (41 kB)
| ---------------------------------------- 41.3/41.3 kB 169.4
| kB/s eta 0:00:00 Downloading numpy-1.26.4-cp312-cp312-m
| anylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.0 MB)
| ---------------------------------------- 18.0/18.0 MB 4.1 MB/s
| eta 0:00:00 Downloading
| PyQt5-5.15.10-cp37-abi3-manylinux_2_17_x86_64.whl (8.2 MB)
| ---------------------------------------- 8.2/8.2 MB 4.8 MB/s
| eta 0:00:00 Downloading setuptools-69.5.1-py3-none-
| any.whl (894 kB)
| ---------------------------------------- 894.6/894.6 kB 3.1
| MB/s eta 0:00:00 Downloading PyQt5_Qt5-5.15.2-py3-none-
| manylinux2014_x86_64.whl (59.9 MB)
| ---------------------------------------- 59.9/59.9 MB 1.8 MB/s
| eta 0:00:00 Downloading PyQt5_sip-12.13.0-cp312-cp312-m
| anylinux_2_5_x86_64.manylinux1_x86_64.whl (360 kB)
| ---------------------------------------- 361.0/361.0 kB 2.0
| MB/s eta 0:00:00 Installing collected packages:
| PyQt5-Qt5, setuptools, PyQt5-sip, numpy, markdown2, PyQt5,
| pyspread Successfully installed PyQt5-5.15.10
| PyQt5-Qt5-5.15.2 PyQt5-sip-12.13.0 markdown2-2.4.13
| numpy-1.26.4 pyspread-2.2.3 setuptools-69.5.1
| [notice] A new release of pip is available: 23.2.1 -> 24.0
| [notice] To update, run: pip install --upgrade pip
| (pyspread) [xxxx@fedora ~]$ python3 -m pyspread
| sorenjan wrote:
| Use pipx to install applications instead. It even works on
| Windows. > pipx install pyspread
| installed package pyspread 2.2.3, installed using Python 3.12.3
| These apps are now globally available -
| pyspread.exe done!
| ceving wrote:
| Debian has it out of the box: $ LANG=C apt-
| cache policy pyspread pyspread: Installed:
| 2.2.3-1 Candidate: 2.2.3-1 Version table:
| *** 2.2.3-1 500 500
| http://ftp.de.debian.org/debian trixie/main amd64 Packages
| 500 http://ftp.de.debian.org/debian trixie/main i386 Packages
| 100 /var/lib/dpkg/status
| kwhitefoot wrote:
| Thank you!
| resource_waste wrote:
| Stop using debian-family.
|
| Dealing with outdated/bugs is just a regular day under the
| guise of 'stable'.
|
| The only reason you even are using Mint is because conical did
| a marketing trick sending free CDs in 2000s.
| globular-toast wrote:
| You're not really supposed to pip install applications. pip is
| a developer tool. There is pipx which is great, but I still
| think it's a developer tool. It's annoying when projects say to
| pip install stuff. It's never the right thing to do.
| pasc1878 wrote:
| Compare this with the comments above re nix where it just ran -
| although to get a python app to build on nix is a pain but at
| least only one person has to do it.
| voxelghost wrote:
| I am Jacks endless disappointment. j/k - it looks nice - how
| would you compare/position it against something like jupyter lab?
| fab13n wrote:
| the magic power of spreadsheets is that they encourage
| improvisation, and it probably applies to that one.
|
| you have only one data structure (the 2D table), data types are
| super-weak, there are no variable names... all of this
| guarantee a maintenance nightmare, and rightfully scares
| developers. But it's also a very low barrier to entry. You've
| got data, you paste them into the grid, and you start toying
| with them, before having figured anything about them.
|
| That's an amazing superpower, when targeting non-developers,
| and that's why Excel is the most used programming language over
| the world, by far: it's probably got an order of magnitude more
| users than there are trained developers in the world.
| WillAdams wrote:
| and _that_ is why I'm still very sad that Lotus Improv didn't
| make it in the marketplace --- gathering all the formulae
| into one pane was _incredible_ for organization and providing
| a single top-level view of what a spreadsheet was doing.
|
| I really wish Flexisheet would get to a usable point, or that
| Quantrix wasn't so expensive.
| metadat wrote:
| What is the meme behind this reference: "I am Jack's endless
| disappointment"?
|
| I searched the web but still unclear.
| fishyjoe wrote:
| https://www.quora.com/What-does-Im-Jacks-complete-lack-of-
| su...
| oulipo wrote:
| I guess it would be "easy" to compile to WASM using pyodide or
| such, and have a full in-browser version? might be cool
| codingglass wrote:
| Looks like the interface/windowing is built on Qt/PyQt. QT does
| have a WebAssembly build, but I don't think it's all that
| simple of a transition.
| zero-sharp wrote:
| I wonder what the performance is like?
| ssl232 wrote:
| I see it uses numerical designations for both the columns and
| rows allowing indexing like a 2D matrix. Nice. One of the many
| annoyances of Excel is the alphabetic columns that make even less
| sense beyond 26.
| tichiian wrote:
| That A1 mode is Excel "Baby-Mode", you can switch to R1C1 mode
| in settings. Things are far easier then, and more sane.
|
| His Excel-lence also recommends this:
| https://www.youtube.com/watch?v=JxBg4sMusIg
| falcor84 wrote:
| Baby mode?! As a full grown adult, I find the cognitive load
| of the base 26 arithmetic of "what column is an offset of 8
| to the right of AW" to be exactly what I needed to fully
| forget about what I came there to do in the first place
| epcoa wrote:
| Baby's lack object persistence and a formed theory of mind,
| seems to check out.
| mhh__ wrote:
| Never seen anyone actually use this.
|
| The "real" answer is to use names and tables. That and
| generally not having data flying up down left and right.
| steine65 wrote:
| Agreed! Hard cell references should rarely be used. Names
| for metadata variables (eg. Current_Month) and tables for
| datasets.
| tichiian wrote:
| Yes. But many parts of excel don't support those. E.g.
| conditional formatting just doesn't deal with names.
|
| Also, when you need names, it is a sign to reach for a
| proper programming enviroment like Delphi or Lazarus.
| amias wrote:
| this seems like a huge reinvention of jupyiter , i really hope
| they aren't going to recreate all the bugs.
| cdrini wrote:
| I think one major difference between spreadsheets and Jupyter
| notebooks is state/dependency graph. In a notebook, cells don't
| depend on each other. They can be run many times, and the order
| they're run in matters. This is one of the major gotchas with
| notebooks. With spreadsheets, they're generally deterministic.
| There is no notion of "cell order", cells are recomputed
| automatically depending on the dependency graph between the
| cells. This results in a pretty big user experience difference.
| ziml77 wrote:
| But according to other comments here, that's unfortunately
| not how this spreadsheet program works.
| cdrini wrote:
| Yes in that it doesn't appear to use a dependency graph to
| track recomputes; it recomputes everything on a cell change
| (according to another commenter anyways). But the UX effect
| is still the same in that the user never has to think about
| cell order, and every cell is always consistent with each
| other.
| tichiian wrote:
| Python is a bad language for this, because one-liners are
| awkward. Multiline code is possible but ugly due to indentation-
| based syntax. Brace-based languages would be far more suitable
| here.
| toss1 wrote:
| Are you suggesting a flavor of Lisp? Because THAT could be very
| nice in a cell-format.
| hodapp wrote:
| There is SIAG (Scheme in a Grid) that has been around for
| ages: https://siag.nu/siag/
| behnamoh wrote:
| I like Lisp but why are almost ALL Lisp-related websites so
| ugly? They still have the 90s look and feel.
| DrNosferatu wrote:
| I couldn't understand what's the datatype of each cell. - How to
| use NumPy and others?
| WillAdams wrote:
| I would really like to see a distribution which puts all the best
| alternative software together:
|
| - pyspread for a spreadsheet
|
| - LyX for a word-processor
|
| - OpenSCAD for a 3D modeler
|
| - TkzEdt (or ipe) for 2D drawing
|
| &c.
|
| (and I'd be interested in suggestions for similar software for
| other tasks, esp. presentations and database work)
| heggy wrote:
| When would you take OpenSCAD over Blender?
| giancarlostoro wrote:
| My understanding is that with CAD software you can go
| backwards and have (near?) infinite edit history, in a way
| you cannot with Blender. Which makes it very, very useful.
| spott wrote:
| A lot of cad software actually has an editable history: you
| can go back 100 steps and modify a dimension or a step and
| have the rest of the model updated to take that new
| dimension into account.
|
| I wouldn't work with any cad software that _didn't_ have
| that ability.
| constantcrying wrote:
| This is called parametric design. Since CAD programs do not
| operate on meshes, this allows you to e.g. change the
| dimension on some part and have the rest adjust
| accordingly.
|
| How well this works depends on the situation, if changing a
| parameter causes new faces to appear on the object this is
| usauayvwry difficult to handle, even for commercial CAD
| programs.
| bitdivision wrote:
| Blender wasn't originally designed to be used for CAD type
| applications. It's possible of course, but you're likely
| better off with something specifically meant for precision
| CAD models. Specifically for 3d printing, I don't think
| blender is ideal.
|
| I think most programmers like OpenSCAD - what better way to
| make parametric CAD models than by writing code?
| gibspaulding wrote:
| OpenSCAD is really good for parametric designs. One of the
| first things I designed in OpenSCAD was a bicycle sprocket
| where you could input how many teeth you wanted, link length,
| how thick, etc. and OpenSCAD would generate the sprocket
| according to those parameters. I recall seeing a while back
| that blender was adding support for this kind of thing so I'm
| sure it's possible, but it was very intuitive in OpenSCAD.
|
| For any large project I'm sure Blender (or FreeCAD) would be
| a better choice, but as someone with some programming
| background just starting out, OpenSCAD feels way more
| accessible.
| WillAdams wrote:
| I've tried a lot of 3D software over the years, and
| OpenSCAD has been the one I've been most successful with
| (along w/ Carbide Create, but I work for that company....)
|
| Currently working on a library which makes the two work
| together:
|
| https://github.com/WillAdams/gcodepreview
|
| (which is currently quite primitive/basic, and even when
| fully developed is not likely to be used by anyone else)
| constantcrying wrote:
| Blender can't do CAD. At least it can't do what you would
| want to do in a CAD program.
|
| The most important difference is that Blender operates on
| meshes, CAD programs don't.
| LeifCarrotson wrote:
| KiCad for electronics development.
|
| Blender for 3D graphics.
|
| Gimp for photo editing.
|
| Inkscape for illustration.
|
| Though I'd recommend FreeCAD over OpenSCAD as a 3D modeling
| tool for most users as an alternative to traditional CAD
| tools...and therein lies the distro problem.
| WillAdams wrote:
| Good points.
|
| I was trying to think of unusual programs with non-standard
| approaches.
|
| Perhaps rather than FreeCAD either BRL-CAD, or maybe the
| recently announced Dune 3D:
|
| https://news.ycombinator.com/item?id=40228068
|
| Also, Blender w/ CADsketcher (the Solvespace solver) is quite
| good:
|
| https://news.ycombinator.com/item?id=34856383
|
| Though maybe Solvespace would be a better match?
|
| https://news.ycombinator.com/item?id=33571555
| synergy20 wrote:
| drawio for diagrams
| johnmaguire wrote:
| Gimp is really not great for photo editing IMO - it really
| shines at _photo manipulation_. (i.e. it is Photoshop, not
| Lightroom.)
|
| For RAW development (a la Lightroom), DarkTable and
| RawTherapee exist. I've only tried the former, and found it
| incredibly difficult to use.
|
| I also prefer Krita for digital illustration (though maybe
| that's unfair - it's best at _digital painting_
| specifically.) Of course, if you need vector support,
| Inkscape is the obvious answer.
| diath wrote:
| But why do you even need a distro to begin with just to ship
| certain software set? Install Arch/Gentoo and install whatever
| is your preferred software of choice, or hell, you can even do
| that on any other distro.
| WillAdams wrote:
| I think it would be an interesting thing for a distro to
| market/focus on, and it might help to find/identify/encourage
| additional such software.
| everforward wrote:
| Isn't that basically package groups (or whatever the
| district-specific terms are)?
|
| Eg Im pretty sure Ubuntu Desktop has some kind of
| "Productivity" package group that includes a word processor
| and spreadsheets and an email client and what not. I'm
| pretty sure it's selected by default when you do a full
| desktop install. I don't recall what the actual software
| is, but I would imagine LibreOffice.
|
| I would agree with OP that it doesn't really make sense for
| a distro, though. People really want to "make a distro" for
| some reason so we end up with silly shit like Kubuntu
| (Ubuntu... with KDE pre-installed).
|
| My general rule of thumb is if I can point the distro's OS
| package manager to the distro's upstream (ie Ubuntu for
| Kubuntu, or Debian for Ubuntu) and everything works or
| mostly works, it should be a script or apt repo and not a
| distro.
|
| There are way too many "Ubuntu but with a different default
| DE" distros that could really just be a modified install
| ISO or post-install script.
| comte7092 wrote:
| The value a dedicated distro provides here is that you don't
| have to do the legwork to research and find the best tools.
|
| As power users we may want to do that ourselves, but a lot of
| people place value in having that curation done for them.
| TheCleric wrote:
| I tend to use AlternativeTo for that.
|
| For example: https://alternativeto.net/software/pyspread/
| dfox wrote:
| It seems to not be a true spreadsheet with dependency tracking
| and instead it recomputes everything after each change. Whis
| probably kind-of obvious as how to track the dependencies for
| arbitrary Python code is not that obvious. But without resorting
| to some static analysis magic one could just track accesses to
| the magic S[] during the excecution of the cell, its value cannot
| depend on anything else than what was accessed during the
| evaluation.
| cmcconomy wrote:
| what if you wrap all your cell contents with a memoize
| mewpmewp2 wrote:
| Or maybe worst case allow user to add deps like in React
| useEffect.
| dgacmu wrote:
| That gets broken by constructs like sum(all of column 5) when
| new rows or columns are added.
|
| (It's very similar to the problem of locking in databases)
| movpasd wrote:
| One issue with this is that arbitrary Python code can have
| arbitrary side-effects.
|
| Your suggestion reminds me a lot of fine-grained reactivity
| like in SolidJS, which makes sense, since spreadsheets
| basically operate on reactive programming. Some great articles
| by Ryan Carnatio on the topic.
|
| The side-effects thing comes in if a user puts in some side-
| effect in a dependent cell, which is equivalent to adding side-
| effects in a memo in reactive-speak.
| regularfry wrote:
| Shame it's GPL3. That counts it out of being included in FreeCAD,
| which I can't help but feel would be an improvement on the
| current spreadsheet workbench.
| adolfopd wrote:
| Eneble number line to 2^25 or minimal 2^22 by default.
|
| Kill many user from Excel limitation 2^20!!
| Kim_Bruning wrote:
| nix run nixpkgs#pyspread
|
| Not saying Nix(os) Is The Way, but sometimes it does ok.
| ingenieroariel wrote:
| I did not believe you and just typed it on OSX, half a minute
| later the app was ready for me to use.
|
| nix run nixpkgs#pyspread [0/1 built, 3/113/132 copied
| (1311.8/1721.6 MiB), 280.4/300.7 MiB DL] fetching llvm-16.0.6
| from https://cache.nixos.org
|
| https://pasteboard.co/P1eh7B7W8C9R.png
| brudgers wrote:
| Related? Python in Excel:
|
| https://support.microsoft.com/en-us/office/get-started-with-...
| ptx wrote:
| Not actually "in Excel", though. The Python code runs on
| Microsoft's servers (they say in the introduction) and Excel is
| just a client.
|
| There's no reason they couldn't embed CPython in Excel, but
| maybe the intention was for the online version of Excel to have
| feature parity without having to compile Python to JavaScript?
| mhh__ wrote:
| Awful. They don't seem to understand excel anymore.
|
| If you want to see this done properly (on some limit) look at
| pyxll.
| eigenket wrote:
| I'm also interested in the least pythonic spreadsheet, has anyone
| worked on that?
| dang wrote:
| Related. Others?
|
| _Pyspread - Spreadsheet with deep Python integration_ -
| https://news.ycombinator.com/item?id=30426053 - Feb 2022 (1
| comment)
|
| _Pyspread - Spreadsheet implementation in Python, cells return
| Python objects_ - https://news.ycombinator.com/item?id=7593603 -
| April 2014 (1 comment)
|
| _Show HN: Spreadsheets using Python - Have you seen this?_ -
| https://news.ycombinator.com/item?id=1884896 - Nov 2010 (47
| comments)
|
| _PySpread: A spreadsheet that accepts a pure python expressions_
| - https://news.ycombinator.com/item?id=265132 - Aug 2008 (3
| comments)
| justin_oaks wrote:
| I'd like to give praise for the "Target User Group" section on
| the homepage.
|
| Not only does it say what users the app is for, but also who it
| is NOT for. I think this kind of information is invaluable in
| deciding whether or not to use or suggest an app.
|
| I can understand if app developers want EVERYBODY to user their
| app (whether or not its the best for the job) or if the app
| developer just doesn't want to take the time to write out who the
| app is NOT for. But I will praise those who do include that
| information.
| TheCleric wrote:
| I like it and I'll take it a step further. I think this is
| important information for a developer to admit to THEMSELVES at
| least. Being all things to all people is a route straight to
| burnout for an open source project.
| behnamoh wrote:
| And yet, it is not available on macOS, presumably THE platform
| where that target user group lives.
| breckognize wrote:
| Shameless plug: If you have bigger data sets, check out
| https://rowzero.io
|
| We scale up to hundreds of millions of rows and have native
| Python support.
|
| You can define functions in Python and call them as formulas from
| any spreadsheet cell. We seamlessly marshal Pandas dataframes
| from Python land to spreadsheet land and back. [1]
|
| We're also hosted and support real time collaboration like Google
| Sheets. We reimplemented the Excel formula language. We connect
| directly to Postgres, S3, Snowflake, Redshift, and Databricks.
| And the first workbook is free.
|
| [1] https://rowzero.io/docs/code-window
| Aliyekta wrote:
| the api page doesn't seem to work.
| JosephRedfern wrote:
| Interestingly, Giles Thomas (the guy behind Python Anywhere)
| originally developed a Pythonic Spreadsheet application, called
| Resolver One, and then iterated to a a web-based version, called
| Project Dirigible.
|
| Python Anywhere eventually span out from Project Dirigible when
| they realised that it was mostly being used for "generic" Python
| development rather than being used as a spreadsheet. There's an
| interesting write-up on this evolution here:
| https://blog.pythonanywhere.com/197/, and a demo of Dirigible
| here: https://www.youtube.com/watch?v=2ZoIp-5NaiQ.
|
| Project dirigible ended up being open sourced here:
| https://github.com/pythonanywhere/dirigible-spreadsheet.
| golem14 wrote:
| I'm curious how it compares to emacs' calc / spreadsheet mode in
| org.
|
| Looks like it is
|
| a) a stand-alone X11 app (not easily runnable on macos) b) using
| python instead of elisp.
|
| Is that roughly accurate ? I can't easily understand from the
| post.
___________________________________________________________________
(page generated 2024-05-07 23:00 UTC)