SQLAlchemy engenharia reversa definição de classe declarativa de banco de dados MySQL existente?

Eu tenho um banco de dados mysql pré-existente contendo cerca de 50 tabelas.

Em vez de codificar manualmente uma classe SqlAlchemy de estilo declarativo (como mostrado aqui) para cada tabela, existe uma ferramenta / script / comando que eu possa rodar no banco de dados mysql quegerar uma classe python no estilo declarativo para cada tabela no banco de dados?

Para tomar apenas uma tabela como exemplo (seria ideal para todos os 50) da seguinte forma:

+---------+--------------------+
| dept_no | dept_name          |
+---------+--------------------+
| d009    | Customer Service   |
| d005    | Development        |
| d002    | Finance            |
| d003    | Human Resources    |
| d001    | Marketing          |
| d004    | Production         |
| d006    | Quality Management |
| d008    | Research           |
| d007    | Sales              |
+---------+--------------------+

Existe uma ferramenta / script / comando que pode gerar um arquivo de texto contendo algo como:

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Department(Base):
   __tablename__ = 'departments'

   dept_no = Column(String(5), primary_key=True)
   dept_name = Column(String(50))

   def __init__(self, dept_no, dept_name):
       self.dept_no = dept_no
       self.dept_name = dept_name

   def __repr__(self):
      return "<Department('%s','%s')>" % (self.dept_no, self.dept_name)

questionAnswers(4)

yourAnswerToTheQuestion