В Python3 я могу сделать:
In [224]: txt = "Côte d'Ivoire"
In [225]: x = np.zeros((2,),dtype='U20')
In [226]: x[0] = txt
In [227]: x
Out[227]:
array(["Côte d'Ivoire", ''], dtype='<U20')
Это означает, что я, вероятно, мог бы открыть файл UTF-8 (обычный, а не байтовый режим) и строки чтения и назначить их элементам массив x
.
Но genfromtxt
настаивает на работе с байтовыми строками (ascii), которые не могут обрабатывать большой UTF-8
набор (7 байт v 8). Поэтому мне нужно применить decode
в какой-то момент, чтобы получить массив U
.
Я могу загрузить его в массив 'S' с помощью genfromtxt
:
In [258]: txt="Côte d'Ivoire"
In [259]: a=np.genfromtxt([txt.encode()],delimiter=',',dtype='S20')
In [260]: a
Out[260]:
array(b"C\xc3\xb4te d'Ivoire", dtype='|S20')
и примените decode
к отдельным элементам:
In [261]: print(a.item().decode())
Côte d'Ivoire
In [325]: print _
Côte d'Ivoire
Или используйте np.char.decode
, чтобы применить его к каждому элементу массива:
In [263]: np.char.decode(a)
Out[263]:
array("Côte d'Ivoire", dtype='<U13')
In [264]: print(_)
Côte d'Ivoire
genfromtxt
позволяет мне укажите converters
:
In [297]: np.genfromtxt([txt.encode()],delimiter=',',dtype='U20',
converters={0:lambda x: x.decode()})
Out[297]:
array("Côte d'Ivoire", dtype='<U20')
Если csv
имеет сочетание строк и цифр, этот converters
подход будет более простым в использовании, чем np.char.decode
. Просто укажите конвертер для каждого столбца строки.
(см. Мои предыдущие изменения для попыток Python2).
Необходимо быть в состоянии для ускорения Вашего script/spec
вызовы путем выполнения script/spec_server
в отдельном окне терминала, затем добавления дополнительного -X
параметр к вызовам спецификации.
, потому что это загружает весь environement, приспособления загрузок и весь тот джаз.
настоящий преступник - то, если Вы выполняете его с помощью rake spec
, это работает db:test:prepare
задача .
, Эта задача отбрасывает всю тестовую базу данных и воссоздает ее с нуля. Это кажется смешным мне, но это - то, что это делает (то же самое происходит, когда Вы работаете rake:test:units
и т.д.).
можно легко работать вокруг этого использования spec
приложение, которое rspec устанавливает как часть rspec драгоценного камня.
Как это:
cd railsapp
spec spec # run all specs without rebuilding the whole damn database
spec spec/models # run model specs only
cd spec
spec controllers/user* # run specs for controllers that start with user
Запущение тестов может быть действительно медленным, потому что целая среда направляющих должна загрузиться (попробуйте сценарий/консоль), и только тогда может весь тестовый прогон. Необходимо использовать автотест , который сохраняет среду загруженной и проверит, какие файлы Вы редактируете. Когда Вы отредактируете и сохранили файл, только тесты, которые зависят от них, будут работать автоматически и быстро.
Я думаю опыт "дзэн", который Вы ищете, должен работать spec_server
и autospec
в фоновом режиме, с результатом, являющимся почти мгновенными тестами, когда Вы сохранили файл.
Однако у меня есть проблемы, заставляя эти две программы связаться.
я нашел объяснение здесь :
я заметил, что автотест не отправляет команды в spec_server. Вместо этого это перезагружает всю среду направляющих и плагины Вашего приложения каждый раз, это выполняется. Это заставляет автотест работать значительно медленнее, чем сервер сценария, потому что, когда Вы работаете, сценарий/спецификация управляет, чтобы спецификации были отправлены в spec_server, которому уже разожгли Вашу среду направляющих и готовый пойти. Если Вы, оказывается, устанавливаете новый плагин или что-то как этот, то необходимо будет перезапустить spec_server.
, Но, как мы устраняем эту проблему? Я предполагаю, что это включило бы загрузку ZenTest и изменение кода для autotest
программа, но не имеет времени для испытания его прямо сейчас.
Вы выполняете это по направляющим? Если так, это не инициализация RSPEC, это медленно, это - направляющие. Направляющие должны инициализировать всю кодовую базу и Ваш прежде, чем выполнить спецификации. Ну, это не делает , имеют к, но это делает. RSpec работает довольно быстро за мной в соответствии с моими маленькими проектами ненаправляющих.
Если Вы используете Mac, я рекомендую использовать Rspactor по автотесту, поскольку это использует намного меньше ресурсов для опроса измененных файлов, чем автотест. Существует оба полная версия
Какао или версия драгоценного камня, которую я поддерживаю в Github
sudo gem install pelle-rspactor
, В то время как они не ускоряют отдельные тесты rspec, они чувствуют себя намного быстрее как они автоматическое выполнение затронутая спецификация в течение секунды после Вас, удар сохраняет.
Если Вы находитесь на среде Windows тогда существует, вероятно, мало, можно сделать, поскольку направляющие, кажется, запускаются действительно медленно в соответствии с Windows. Я имел тот же опыт в Windows и должен был переместить мою установку в VM Linux для создания его действительно быстрым (я также использовал автотест).
, Почему является настолько медленным rspec? , потому что это загружает весь environement, приспособления загрузок и весь тот джаз.
там способ ускорить начальную загрузку направляющих , Вы могли попытаться использовать насмешки вместо того, чтобы полагаться на базу данных, это на самом деле корректно для поблочного тестирования и определенно ускорит Ваши модульные тесты. Additionnaly с помощью сервера спецификации, как упомянуто Scott Matthewman может помочь, то же с автотестом от zentest, упомянутого , Marc-Andre Lafortune
Является там способом выбрать часть моего приложения для направляющих, в котором я нуждаюсь (например, ActiveRecord наполняют только), таким образом, это не загружает абсолютно все для запущения нескольких тестов? что относительно этого
rake test:recent
я не уверен, как rspec задача интегрируется с этим, но Вы могли определенно использовать test:recent задачу в качестве шаблона, чтобы сделать то же с тестами rspec если.
rake test:rspec:recent
еще не существует
Начиная с rspec-rails-1.2.7, spec_server устарел в благосклонность драгоценного камня spork.
Основная причина в том, что по какой-то причине require принимает вечно в Windows.
Советы по ускорению: Кажется, теперь spork работает с окнами.
Вы можете попробовать «fast_require», который кеширует местоположения:
http://github.com/rdp/faster_require
GL. -rp