Pytils is a Russian-specific string utils (transliteration, numeral is words, russian dates, etc)
Pytils это инструменты для работы с русскими строками (транслитерация, числительные словами, русские даты и т.д.)
Russian-specific string utils
Home Page: http://pypi.python.org/pypi/pytils
License: MIT License
Добрый день,
вот так работает - {% now "d" %}
вот так не работает - {% now|ru_strftime:"%d %B" %}
Вопрос: как прямо в шаблоне правильно скормить текущее время фильтру pytils?
Нельзя получить дельту при вычитание объектов Даты если у одной из них не/определена временная зона в результате получаем ошибку:
can't subtract offset-naive and offset-aware datetimes
Воспроизвести крайне легко:
Включаем в django USE_TZ = True
в шаблоне {{ object.updated|distance_of_time }}
Если будет время постараюсь поправить и прислать pull-request
Комментарий набрал {{ comment.count_points }} голо{{ comment.count_points|choose_plural:"с,са,сов" }}
Комментарий набрал -1 голоunknown
After #44 code still have reference to removed function run_tests_from_module
.
В pyproject.toml версию Django зафиксировали на ^4.0.2
, но судя по тестам поддержка django 3 еще не брошена?
pipenv не ставит pytils 4 вместе с django 3.2, ссылаясь на это ограничение.
filename = slugify(upload.name)
77-nazvanie-fajlajpg
Всем привет,
подскажите пожалуйста, работают ли тэги pytils с Jinjia2 ?
I can not understand why, but the new version does not work. Neither your examples, nor my own code. no code in django shell. But everything is fine with python shell.
Возникло желание написать число прописью в дательном падеже (н-р «10 (десяти) дней»).
Как я понимаю, сейчас библиотека такого делать не умеет, так что оставлю issue как feature request. :)
Downloading/unpacking pytils (from -r /home/christian/documents/projects/rh/requirements.txt (line 63))
Downloading pytils-0.2.3.tar.gz (135kB): 135kB downloaded
Running setup.py egg_info for package pytils
Traceback (most recent call last):
File "<string>", line 16, in <module>
File "/tmp/pip_build_christian/pytils/setup.py", line 9
print "Cannot load setuptool, revert to distutils"
^
SyntaxError: invalid syntax
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 16, in <module>
File "/tmp/pip_build_christian/pytils/setup.py", line 9
print "Cannot load setuptool, revert to distutils"
^
SyntaxError: invalid syntax
----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_christian/pytils
Storing complete log in /home/christian/.pip/pip.log
from pytils.dt import distance_of_time_in_words
import datetime
from_time = datetime.datetime.now() - datetime.timedelta(days=4, minutes=1)
print distance_of_time_in_words(from_time)
По идее должно возвращать "4 дня назад", а не деле выдаёт "минуту назад"
Судя по всему проект мертв, и поддержка python3 оставляет желать лучшего?
Есть какие-то альтернативы?
Кажется существуют случаи, когда choose_plural может принимать 2 варианта в строке variants и интерпретировать, что множественное число для 2 и для 5 в данном падеже одинаковое.
Например
choose_plural(1, 'проектом,проектами')
>>> 'проектом'
choose_plural(2, 'проектом,проектами')
>>> 'проектами'
choose_plural(5, 'проектом,проектами')
>>> 'проектами'
Если то, что я описал корректно, попробую сделать пуллреквест.
TurboGears сильно поменялся, последняя версия 1.5.1 не работает с демо.
А почему при транслите предполагается, что текст состоит только из русского или только из английского?
Если в тексте встречается буква, которой нет в русском или английском, то результат получается некорректный.
Например:
print translit.detranslify(u'The band is called Aavepyörä')
Возвращает:
Тхе банд ис cаллед Аавепyöрä
Или аналогично с русским текстом:
print translit.detranslify(u'His name is Андрей')
Возвращает:
Хис наме ис Ð�ндÑ�ей
А если попробовать так:
print translit.translify(u'Они используют Linux.')
То получится:
Unicode string doesn't transliterate completely, is it russian?
И slugify, похоже, тоже как-то странно сейчас работает:
print translit.slugify(u'Они используют Linux.')
Получается:
--linux
Я думаю, что в идеале функции транслитерации (как с русского на английский, так и с английского на русский) должны пропускать неизвестные символы и транслитерировать только те символы, которые присутствуют в таблице транслитерации.
Вообще, я писал статью про транслитерацию на Python. Если интересно, посмотрите.
А вообще классный проект! Спасибо, что сделали всё это.
Удачи!
Но, хотел сообщить, поправьте пожалуйста в документации к ним примеры вызова функции sum_string, in_words, а именно про параметр обозначения пола, он указываться как строка должен:
Examples::
{% sum_string some_int MALE "пример,примера,примеров" %}
{% sum_string some_other_int FEMALE "задача,задачи,задач" %}
заменить бы на "MALE", "FEMALE"
u_res = date.strftime(format)
(это конец функции ru_strftime
)
Какой-то странный глюк. Если format='%Y мая'
, то возвращается пустая строка. Удивительно, ведь метод-то встроенный в python.
Если просто в python сделать в консоли datetime(2016,5,23).strftime('%Y мая')
, то все нормально. Если же то же самое в дебаге (вотчером) в этом месте функции ru_strftime
, то та же проблема.
Invalid syntax in RegExp-s that will raise a SyntaxError in some builds.
Добрый день!
Версия на PyPI уже серьезно устарела. Последние версии Python и Django сейчас 3.8 и 3.0 соответственно.
В #41 удалил весь код, относящийся к Python 2, добавил python 3.8 и Django 3.0 в тесты tox.
Хочу расширить таблицу транслита дополнительными символами. Как это можно сделать, если я использую Django?
a = 1e-5
pytils.numeral.in_words_float(a)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.