Я придумал свое решение. Используйте этот метод, передайте любой документ ( dict , list , ObjectId и т. Д.) Для сериализации.
def getSerializable(doc):
# check if it's a list
if isinstance(doc, list):
for i, val in enumerate(doc):
doc[i] = getSerializable(doc[i])
return doc
# check if it's a dict
if isinstance(doc, dict):
for key in doc.keys():
doc[key] = getSerializable(doc[key])
return doc
# Process ObjectId
if isinstance(doc, ObjectId):
doc = str(doc)
return doc
# Use any other custom serializting stuff here...
# For the rest of stuff
return doc
Вы могли бы быть в состоянии получить некоторые идеи реализации от библиотека Ruby/ProgressBar , который генерирует текстовые индикаторы выполнения. Я споткнулся через него несколько месяцев назад, но не сделал использования из него.
Лично я думаю, что проклятия являются излишеством в этом случае. В то время как lib проклятий хорош (и я часто использую его сам), это - ЛАВАШ, чтобы повторно учиться каждый раз, когда мне не был нужен он в течение 12 месяцев, который должен быть знаком плохого дизайна интерфейса.
, Если по некоторым причинам Вы не можете продолжить lib индикатора выполнения, Joey предложил самокрутка, и выпустите его в соответствии с довольно бесплатной лицензией на мгновенную престижность:)
На окнах работы проклятий из поля, ncurses не делают, и для индикатора выполнения проклятия должны быть достаточными. Так, используйте проклятия вместо ncurses.
кроме того, оба проклятия и ncurses являются тончайшими обертками вокруг c библиотеки - который означает, что Вам действительно не нужны определенные для Ruby учебные руководства.
Однако на сайт для PickAxe можно загрузить все примеры кода для книги. Файл "ex1423.rb" содержит демонстрацию проклятий, которая играет Вонь - который должен дать Вам много материала для получения Вас движение.