Sharing code between different projects?

Steven D'Aprano steve+comp.lang.python at pearwood.info
Tue Aug 14 11:35:53 EDT 2012


On Mon, 13 Aug 2012 17:53:32 +0100, andrea crotti wrote:

> I started to work on project A, then switched completely to project B
> and in the transiction I copied over a lot of code with the
> corresponding tests, and I started to modify it.
> 
> Now it's time to work again on project A, but I don't want to copy
> things over again.
>
> I would like to design a simple and nice way to share between projects,
> where the things I want to share are simple but useful things as for
> example:
[...]
> The problem is that there are functions/classes from many domains, so it
> would not make much sense to create a real project, and the only name I
> could give might be "utils or utilities"..

I feel your pain. "Copy and paste" is perhaps the simplest, most 
seductive, and *worst* of the developer anti-patterns.

I wish I had a solution to share with you, because I'm in the same 
position, but I don't.

The best I have come up with is a combination of:

1) For really small code snippets, just forget about sharing code. If you 
need a five-line function Foo in ten projects, just re-write them (well, 
copy and paste them...) each time. Forget about trying to keep them 
syncronised.


2) For bigger functions/classes, put them in their own module which you 
can share across multiple projects.


3) Consider having a "utilities" module to include all the assorted bits 
and pieces.


If your projects are in-house, then a utilities module makes more sense. 
If you're writing libraries for independent release, not so much.



-- 
Steven



More information about the Python-list mailing list