Comments (7)
Yes, I was wondering about the exact behavior of the Python function, since stringx is so obviously a clone ;) The reference I found merely said that it turns tabs into spaces. The meaning you propose is certainly useful; perhaps an extra boolean argument to allow this to happen, and keeping the dumb functionality as the default?
from penlight.
Thanks for replying - yup, the Python docstring I checked is a bit unclear (the current manual is better). But anyway, this is how it behaves when you call it...
Adding a flag does avoid breaking old code; OTOH it also adds complexity (in particular, expandtabs(self,n,mode)
means anytime you specify mode
you also have to specify n
, even though the n=8
default is probably the most common case). And all other things being equal, I suspect expand-up-to-tabstop is the more useful default in principle.
BTW, thank you for your work on penlight: it's an extremely convenient (and well-organised and well-documented) set of tools. :-)
from penlight.
Thanks for your kind words! I am busy reorganizing things so that there are less inter-module dependencies. For instance, pl.data now only depends on pl.utils, and that dependency is only because the original design was that the rows would have the List metatable. (Actual loading of pl.List is done on a lazy on-demand basis). Generally things become clearer once I stopped trying to write Python ;)
Any other things which you would like to see in the library? Currently I'm contemplating adding pl.date for general data and time manipulation and parsing.
from penlight.
A date-time library sounds good.
What else? Hmm, JSON has made it into the Python standard library recently, which I think is a good thing - it's a widespread portable serial data format. Several languages include a basic general-purpose logging facility in their standard libraries, too, which might be useful here (especially if it fitted comfortably with lapp). Both of those would be natural enough in pure lua.
from penlight.
Gah, I apparently clicked the "Comment and close" button by mistake - not intentional, but I don't think I can re-open the issue myself... :-/
from penlight.
Well, I shall mentally consider it still open (I don't see any way to re-open it here either)
As for JSON and logging, there's already a few Lua libraries that do that - JSON feels a little specialized for a general-purpose library.
As for date-time, I'm looking for a good model; I already know that the Java Date class is not that model ;)
from penlight.
Apparently there's a drop-down menu for project owners etc...
I guess it'd be nice for any new date-time stuff to interact reasonably cleanly with Lua's small set of existing built-in functions for this (os.date
etc).
from penlight.
Related Issues (20)
- Cleanup: move pl.path, pl.file and pl.dir into a single module HOT 1
- Cleanup: move pl.lapp and pl.config into pl.app HOT 2
- Cleanup: move pl.stringio into the pl.stringx module
- Cleanup: deprecate pl.test HOT 1
- Cleanup: drop or improve pl.url HOT 4
- Consider adding the built-in table methods to tablex? HOT 3
- Clone a function? HOT 8
- How about adding json decode and encode function HOT 4
- Error in pretty.write: invalid order function for sorting
- Bareword `warn` in compat.lua is a "strict" violation
- pl.Path.isdir Doesn't work correctly for Windows Base directory i.e. D:\\ (Lua 5.4.4) HOT 1
- Test suite failing on Arch Linux HOT 2
- lfs HOT 1
- stringx indent and dedent functions add an extra "\n" at the end of the string HOT 3
- lexer.cpp doesn't recognize #define without trailing newline HOT 2
- Can't use % as escape character in a template HOT 3
- Running the class's base function HOT 5
- Incorrect integer detection
- Consider implementing `cp` / `mv` via FFI HOT 2
- unexpected behavior for dir.clonetree HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from penlight.