473,840 Members | 1,642 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

What's missing from python?

One of the reasons I like python so much is that the standard
installation comes with a whole lot of libraries to do lots of useful
things but there seem to be a few things missing from the standard
library which would be useful in many projects:

Encryption - AES and 3DES. Possibly RSA and Certificate processing.
DNS - Something better than gethostbyaddr for looking up other record types.
Database - Something suitable for small projects / prototypes like
pysqlite or something in pure python even.
SSL/TLS - Some useful support...

A lot of projects seem to need some of those. It's easy enough to
install extras to do those thing but they are all things where it would
be nice to have something in the standard library that you could rely on
being there.

Is there any reason why those things are not already in the standard
library?
Jul 18 '05 #1
12 1834
John Burton wrote:
One of the reasons I like python so much is that the standard
installation comes with a whole lot of libraries to do lots of useful
things but there seem to be a few things missing from the standard
library which would be useful in many projects:

Encryption - AES and 3DES. Possibly RSA and Certificate processing.
DNS - Something better than gethostbyaddr for looking up other record
types.
Database - Something suitable for small projects / prototypes like
pysqlite or something in pure python even.
SSL/TLS - Some useful support...

A lot of projects seem to need some of those. It's easy enough to
install extras to do those thing but they are all things where it would
be nice to have something in the standard library that you could rely on
being there.

Is there any reason why those things are not already in the standard
library?


Yes, they aren't mature enough to be in there yet (because the work
is not complete, probably because not enough people are helping).

That's at least a partial answer. Were I actually one who helped
with the core work on these things myself, I would doubtless add
"contributi ons are welcome!" :-)

-Peter
Jul 18 '05 #2
John Burton wrote:
One of the reasons I like python so much is that the standard
installation comes with a whole lot of libraries to do lots of useful
things but there seem to be a few things missing from the standard
library which would be useful in many projects:

Encryption - AES and 3DES. Possibly RSA and Certificate processing. This almost certainly not go in. You can get into a big legal hassle
when you ship encryption binaries around, as some governments tend to
think of them as "munitions" and regulate traffic in them. Python
just wants to avoid that hassle, and so leaves it up to you to put it
together. DNS - Something better than gethostbyaddr for looking up other record
types. Hmmm -- I personally have no need, but whatever floats your boat.
The general rule is to build a module, get people using it, and if
there is both enough interest and a maintainer, propose its addition.
Database - Something suitable for small projects / prototypes like
pysqlite or something in pure python even. I'd personally use such a thing, but perhaps it would be a big
chunk of code. It would need its own maintainer. Is pysqlite
sufficiently unencumbered by license? SSL/TLS - Some useful support... If you can figure out how to finesse the encryption issue, I'm sure
something in this area might be a go.
Is there any reason why those things are not already in the standard
library?

Ah -- a volunteer to build and support -- I like that.

--
-Scott David Daniels
Sc***********@A cm.Org
Jul 18 '05 #3
Scott David Daniels wrote:
This almost certainly not go in. You can get into a big legal hassle
when you ship encryption binaries around, as some governments tend to
think of them as "munitions" and regulate traffic in them. Python
just wants to avoid that hassle, and so leaves it up to you to put it
together.


Actually with the Wassenaar agreement its not that bad anylonger, with
an "open source", i.e. freely available source implementation, which
would cover C Python quite nicely I think.

The only countries that would be excluded would more or less be excluded
(it's a gray area) from importing Python anyway, since it's 'American
technology'. Google the Wassenaar agreement.

And IMHO the world in this day and age actually needs more free high
quality crypto implementations . I'd hate to see crypto not being made
available because of some (more or less) irrational fear that one might
step on someones toes. "Damn the torpedoes, full speed ahead". Other
software (likewise exported from the US) contains crypto implementations
these days, so I see no reason that Python couldn't.

Stefan,
--
Stefan Axelsson (http://www.cs.chalmers.se/~sax)
Jul 18 '05 #4
John Burton wrote:
One of the reasons I like python so much is that the standard
installation comes with a whole lot of libraries to do lots of useful
things but there seem to be a few things missing from the standard
library which would be useful in many projects:
It depends on what you regard as a 'standard library'. For me it is the
minimum required to use the language in a general sense. The smallest
subset of all the possible modules. Thus access to the file system is a
requirement but Encryption, DNS, Database, etc are not.

I can use Python without them but take away access to the file system an
Python becomes less useful. Besides do we really want a humungous
standard library, a al Java, or something you could actually get your
head around.
Is there any reason why those things are not already in the standard
library?


Gadfly is a useful SQL database in Python and I am sure that the
developer(s) are fully committed to supporting it into the future.
However if it becomes part of the standard library then this would
impose an additional workload / strain of the developers.

Unless the code is perfect it will require maintainance and testing as
Python grows. As the standard library grows the amount of testing grows
with it, and it is probably not linear.

This alone would be a reason to keep the standard library small.
Jul 18 '05 #5
Peter Hickman <pe***@semantic o.com> writes:
It depends on what you regard as a 'standard library'. For me it is
the minimum required to use the language in a general sense. The
smallest subset of all the possible modules. Thus access to the file
system is a requirement but Encryption, DNS, Database, etc are not.
Python advertises a "batteries included" approach to the library which
means it's supposed to include most of the stuff that users need,
instead of making them download the stuff from random places.
Unless the code is perfect it will require maintainance and testing as
Python grows. As the standard library grows the amount of testing
grows with it, and it is probably not linear.

This alone would be a reason to keep the standard library small.


Python aims to be competitive with other languages and implementations
including (e.g.) Java, which come with large libraries. Unless it
wants to retreat from aiming for the big time, it needs to also have
thorough library coverage, even if that means more work.
Jul 18 '05 #6
Paul Rubin wrote:
Python advertises a "batteries included" approach to the library which
means it's supposed to include most of the stuff that users need,
instead of making them download the stuff from random places.
The 'batteries included' stuff is more a distribution / packaging issue
than the standard library. At least coming from Tcl where we have a
'batteries included' distribution including all sorts of nice things.
However this does not mean that they are part of the standard library.

Tcl works find without an XML parser, but the 'batteries included'
distribution has an XML parser which makes the distribution much more
convenient.
Python aims to be competitive with other languages and implementations
including (e.g.) Java, which come with large libraries. Unless it
wants to retreat from aiming for the big time, it needs to also have
thorough library coverage, even if that means more work.


Simple feature / library count as a measure of progress is flawed. Big
time need not equate with bloat, besides Perl has a massive library of
modules (CPAN) but they are not part of the standard library and this
has not held Perl back.

We need to recognize the divide between language features and a basic
distribution. A 'batteries included' distribution of Python, a la Tcl,
which includes a selection of useful libraries is a good idea but there
is no need to make it part of the standard library.

I want my Python in a Nutshell to be a single volume not an encyclopedia.
Jul 18 '05 #7

Peter> Paul Rubin wrote:
Python advertises a "batteries included" approach to the library
which means it's supposed to include most of the stuff that users
need, instead of making them download the stuff from random places.


Peter> The 'batteries included' stuff is more a distribution / packaging
Peter> issue than the standard library. At least coming from Tcl where
Peter> we have a 'batteries included' distribution including all sorts
Peter> of nice things. However this does not mean that they are part of
Peter> the standard library.

See:

http://www.tcl.tk/cgi-bin/tct/tip/12.html

and search for "Frank Stajano". My guess would be that Frank's paper got
the ball rolling for the "batteries included" concept in Tcl.

Skip

Jul 18 '05 #8
In article <ma************ *************** *********@pytho n.org>,
Skip Montanaro <sk**@pobox.com > wrote:

Peter> Paul Rubin wrote:
>> Python advertises a "batteries included" approach to the library
>> which means it's supposed to include most of the stuff that users
>> need, instead of making them download the stuff from random places.


Peter> The 'batteries included' stuff is more a distribution / packaging
Peter> issue than the standard library. At least coming from Tcl where
Peter> we have a 'batteries included' distribution including all sorts
Peter> of nice things. However this does not mean that they are part of
Peter> the standard library.

See:

http://www.tcl.tk/cgi-bin/tct/tip/12.html

and search for "Frank Stajano". My guess would be that Frank's paper got
the ball rolling for the "batteries included" concept in Tcl.

Skip


I confirm that. That's verifiably how it happened.

I also don't see that as contradicting what Peter wrote.
--

Cameron Laird <cl****@phaseit .net>
Business: http://www.Phaseit.net
Jul 18 '05 #9

Peter> The 'batteries included' stuff is more a distribution / packaging
Peter> issue than the standard library. At least coming from Tcl where
Peter> we have a 'batteries included' distribution including all sorts
Peter> of nice things. However this does not mean that they are part of
Peter> the standard library.
See:

http://www.tcl.tk/cgi-bin/tct/tip/12.html

and search for "Frank Stajano". My guess would be that Frank's paper
got the ball rolling for the "batteries included" concept in Tcl.


Cameron> I confirm that. That's verifiably how it happened.

Cameron> I also don't see that as contradicting what Peter wrote.

Peter said, "The 'batteries included' stuff is more a distribution /
packaging issue than the standard library." As I recall from Frank's talk
and the quote in the above URL, Frank was definitely using "batteries
included" to mean the stuff that was included as part of the standard
library.

Python's batteries have met my needs quite well. Refreshing my memory with
my site-packages directory, I can think of only a few things that I've
gotten from elsewhere over the years:

* timeout_socket - now supplanted by socket's own timeout feature

* PIL at one point where I was messing around with some simple image
processing

* mxDateTime - now supplanted for my meager needs by datetime

* Zope, Quixote, WebWare - all really more than you'd need/want in the
standard distribution I think, and all really cross the boundary
between library and application

* Object Craft's csv module (and a couple other csv modules) - now
supplanted by the csv module

* xmlrpclib - now in the core distribution

* psyco

* psycopg and MySQLdb

* TextFile

Of those, I don't really expect the web app framework stuff to turn up in
the core (too many to choose from, no "one best way", too big), PIL's
probably too specialized for the core, psyco is still largely experimental
(though once it stabilizes and supports at least one non-Intel CPU I think
it should be considered), database connectors probably don't belong in the
core because there are too many databases to connect to, and TextFile
(transparently gzip files on output) could have been written easily enough
had I not stumbled upon it first.

Skip

Jul 18 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

220
19241
by: Brandon J. Van Every | last post by:
What's better about Ruby than Python? I'm sure there's something. What is it? This is not a troll. I'm language shopping and I want people's answers. I don't know beans about Ruby or have any preconceived ideas about it. I have noticed, however, that every programmer I talk to who's aware of Python is also talking about Ruby. So it seems that Ruby has the potential to compete with and displace Python. I'm curious on what basis it...
1
3265
by: Partho Bhowmick | last post by:
I am building extension modules for Python 2.3 under Windows using MS Visual Studio .Net 2003. In the debug build, there is a pragma statement in <pyconfig.h> that causes a link to the lib python23_d.lib This library does not exist. Am I missing something or is the installation missing something?
28
3316
by: David MacQuigg | last post by:
I'm concerned that with all the focus on obj$func binding, &closures, and other not-so-pretty details of Prothon, that we are missing what is really good - the simplification of classes. There are a number of aspects to this simplification, but for me the unification of methods and functions is the biggest benefit. All methods look like functions (which students already understand). Prototypes (classes) look like modules. This will...
92
6571
by: Reed L. O'Brien | last post by:
I see rotor was removed for 2.4 and the docs say use an AES module provided separately... Is there a standard module that works alike or an AES module that works alike but with better encryption? cheers, reed
0
688
by: Duncan Smith | last post by:
Hello, I'm not very experienced in SQL and I need some advice. I have a comma separarated values file containing around 20 million records and about 20 fields. There are many missing values (blank). I am only directly interested in 2 fields (1 & 4), but need to use two other fields (2 & 3) for imputing values for Field 1 (if missing). If Field 4 is missing I must delete / ignore the record. The (Python) types are, Field1 (string) ...
19
3159
by: Kalle Anke | last post by:
I'm confused, I want to read/write XML files but I don't really understand what library to use. I've used DOM-based libraries in other languages, is PyXML the library to use?
42
2511
by: redefined.horizons | last post by:
I'm coming from a Java background, so please don't stone me... I see that Python is missing "interfaces". The concept of an interface is a key to good programming design in Java, but I've read that they aren't really necessary in Python. I am wondering what technique I can use in Python to get the same benefits to a program design that I would get with interfaces in Java. For example, if I want to have a program with a Car object, and...
34
3660
by: emrahayanoglu | last post by:
Hello Everyone, Now, I'm working on a new web framework. I tried many test on the other programming languages. Then i decided to use python on my web framework project. Now i want to listen all of you. What do you want in that web framework(Easy use of Database, Easy use of XML, GUI Designer, etc...)? I'm wating your answers. Thank you for all answers...!
7
2158
by: Michele Simionato | last post by:
I have noticed that the python-mode for Emacs that comes with the latest Ubuntu is missing the class browser. Moreover if works differently from the python-mode I was used to (for instance CTRL-c-c works as CTRL-c-! whereas CTRL-c-! is missing, etc). How can I go back to the old python-mode or at least how do I get back the class browser? Michele Simionato
0
9863
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, weíll explore What is ONU, What Is Router, ONU & Routerís main usage, and What is the difference between ONU and Router. Letís take a closer look ! Part I. Meaning of...
0
10924
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10607
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
10302
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
5686
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5879
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4498
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
4080
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3139
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.