Improvement to imports, what is a better way ?

Paul Bryan pbryan at anode.ca
Wed Jan 18 14:29:27 EST 2023


I would suggest allowing each module to define its own imports, don't
import what a module doesn't consume, keep them simple, avoid devising
a common namespace for each, and let tools like isort/black work out
how to order/express them in source files.

On Wed, 2023-01-18 at 10:43 -0800, Dan Kolis wrote:
> This program has lots of files and each is well segregated for a
> concept.
> 
> the top of each as a heap of imports, all identical. Well the very
> top has some one of's
> 
> import os as                        os
> import sys as                       sys
> import importlib as                 importlib
> import datetime as                  dt
> from   tokenize import              maybe
> import signal
> 
> from   tkinter import filedialog as fd
> from   tkinter.messagebox import    showinfo
> import tkinter as                   tk  
> from   tkinter import               ttk
> from   tkinter import               font
>  
> from   PIL import Image     as      pl
> from   PIL import ImageTk   as      ii
> 
> # Imports part of this program 
> import aboutTime as         tt      # Time dates timestamps and the
> like
> import avMedia as           av      # Audio and maybe video 'someday'
> well definitely lots of TTS text to speech
> import basicSwitchboard as  sc      # First switchboard lurking.
> Kickoff to sequence viewers
> import bestNotifications as bn      # Alerts, modals and
> notifications of many kinds including TK windows
> import bitBlitting as       bb      # Help - # A setup window with
> basic facts written into files and the workspace
> import configSetting as     cs      # A setup window with basic facts
> written into files and the workspace
> import devPeeks as          dp      # Developments peek assets code
> for adding features and debugging
> import fileIo as            io      # File reads, writes even some of
> the the pickle and unpickling
> import forFun as            ff      # Staging area for uncertian
> features, also some dynamic code inclusion
> import fractionScreens as   fs      # Common window pieces for TK
> windows in sequence viewers
> import genomeDb as          gd      # IO to from databases external
> files gbk and others sure
> import globalIdeas as       gi      # Common code for stuff used
> everywhere and definition of share DOT OBJECTS
> import insertableEditors as ie      # Text editor(s) and support for
> that, some language issues managed too
> import modalSimple as       mo      # Modal windows icp seq ssues,
> not used much currently
> import osDependant as       od      # Operating system dependant
> calls and adaptions
> import pickle as            pk      # Packaging to and from file
> system for objects especially DOT OBJECTS
> import screenBuilder1 as    sb      # Screen maker for TKinter and
> TKinter ++ windows
> import selectViewer as      sv      # Window for picking which
> sequence viewers are enabled
> import sequencesMaintain as sm      # Touching up temporal version
> issues of DOT OBJECTS
> import sequencesOverview as so      # Working with sequences as macro
> facts, lists, see turn off etc
> import serverHttp1 as       sh1     # Servers for HTTP - User Support
> import serverHttp2 as       sh2     # Servers for HTTP - Protein
> viewing
> import specialFour as       sf      # Classes and stuff for viewer
> four, a very complex viewer
> import stagingNow as        sn      # More stabler new ideas getting
> tried out and moved in
> import taskingFunction as   tf      # Tasker for real timeish event
> processor calls. Has two versions both work
> import toastMaker as        tm      # Notifications
> import transFormations as   xf      # Sequence transFormations from
> mother natures ideas like DNA and RNA
> import unlovedMenus as      um      # Pretty rarely used ond
> fashioned menus. A while interface is in here that works
> import wayOffline as        wo      # Code not discarded but just
> studies, etc
> import windowsX as          wx      # Windows Life ! X11 esp TK not
> MS Windoze ...
> 
> So the file for instance fileIo.py has a duplicate of this.
> 
> I want to be able to call any code by using the two char prefix form
> anywhere. ex: io.get_Sequence(  'abc.fa' )
> 
> this seems weirdly disorderly. when it starts it sort of iterates
> down into objects, backs up etc.
> 
> What's the right way to do this ?
> 
> Thank you
> Dan



More information about the Python-list mailing list