danhper / danhper/python-i18n

I'm stuck on I18nFileLoadError: no loader available for extension yml

Open
#38 4 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
246
Forks
46
PR merge metrics
No merged PRs in 30d

Description

Hi, i'm novice in python and stuck on problem with i18n
It works on development and production server
pass test with ward on my local machine, but in [github action](https://github.com/bsa7/pretrained-app/actions/runs/3534406874/jobs/5931234457) fails.

log:
```
Run ./script/run_tests.sh
Run all tests

$ pwd:
/home/runner/work/pretrained-app/pretrained-app

$ls
#####################5
total 68K
drwxr-xr-x [7](https://github.com/bsa7/pretrained-app/actions/runs/3534337993/jobs/5931088769#step:5:8) runner docker 4.0K Nov 23 17:3[8](https://github.com/bsa7/pretrained-app/actions/runs/3534337993/jobs/5931088769#step:5:9) .
drwxr-xr-x 11 runner docker 4.0K Nov 23 17:38 ..
-rw-r--r-- 1 runner docker 20K Nov 23 17:38 .pylintrc
-rw-r--r-- 1 runner docker 500 Nov 23 17:38 Dockerfile
drwxr-xr-x 7 runner docker 4.0K Nov 23 17:38 app
drwxr-xr-x 4 runner docker 4.0K Nov 23 17:38 config
-rw-r--r-- 1 runner docker 0 Nov 23 17:38 conftest.py
-rw-r--r-- 1 runner docker 166 Nov 23 17:38 development_server.py
drwxr-xr-x 2 runner docker 4.0K Nov 23 17:38 log
drwxr-xr-x 2 runner docker 4.0K Nov 23 17:38 monkeypatches
-rw-r--r-- 1 runner docker 188 Nov 23 17:38 production_server.py
-rw-r--r-- 1 runner docker 50 Nov 23 17:38 pytest.ini
-rw-r--r-- 1 runner docker 264 Nov 23 17:38 requirements.txt
drwxr-xr-x 8 runner docker 4.0K Nov 23 17:38 tests

#####################7
$ ls ../.

total 64K
drwxr-xr-x 11 runner docker 4.0K Nov 23 17:38 .
drwxr-xr-x 3 runner docker 4.0K Nov 23 17:38 ..
-rw-r--r-- 1 runner docker [9](https://github.com/bsa7/pretrained-app/actions/runs/3534337993/jobs/5931088769#step:5:10) Nov 23 17:38 .envrc
drwxr-xr-x 8 runner docker 4.0K Nov 23 17:38 .git
drwxr-xr-x 3 runner docker 4.0K Nov 23 17:38 .github
-rw-r--r-- 1 runner docker 88 Nov 23 17:38 .gitignore
-rw-r--r-- 1 runner docker 29 Nov 23 17:38 .tool-versions
-rw-r--r-- 1 runner docker 1.3K Nov 23 17:38 README.md
drwxr-xr-x 7 runner docker 4.0K Nov 23 17:38 api
drwxr-xr-x 2 runner docker 4.0K Nov 23 17:38 deploy
drwxr-xr-x 3 runner docker 4.0K Nov 23 17:38 docker
-rw-r--r-- 1 runner docker 744 Nov 23 17:38 docker-compose.yml
drwxr-xr-x 3 runner docker 4.0K Nov 23 17:38 docs
drwxr-xr-x 4 runner docker 4.0K Nov 23 17:38 frontend
drwxr-xr-x 2 runner docker 4.0K Nov 23 17:38 script
drwxr-xr-x 4 runner docker 4.0K Nov 23 17:38 stages

#####################9
$ ls ../../.
total 12K
drwxr-xr-x 3 runner docker 4.0K Nov 23 17:38 .
drwxr-xr-x 6 runner root 4.0K Nov 23 17:38 ..
drwxr-xr-x [11](https://github.com/bsa7/pretrained-app/actions/runs/3534337993/jobs/5931088769#step:5:12) runner docker 4.0K Nov 23 17:38 pretrained-app
#####################11
total 24K

drwxr-xr-x 6 runner root 4.0K Nov 23 17:38 .
drwxr-xr-x [15](https://github.com/bsa7/pretrained-app/actions/runs/3534337993/jobs/5931088769#step:5:16) runner docker 4.0K Nov 23 [17](https://github.com/bsa7/pretrained-app/actions/runs/3534337993/jobs/5931088769#step:5:18):38 ..
drwxr-xr-x 3 runner docker 4.0K Nov [23](https://github.com/bsa7/pretrained-app/actions/runs/3534337993/jobs/5931088769#step:5:24) 17:[38](https://github.com/bsa7/pretrained-app/actions/runs/3534337993/jobs/5931088769#step:5:39) _PipelineMapping
drwxr-xr-x 3 runner docker 4.0K Nov 23 17:38 _actions
drwxr-xr-x 4 runner docker 4.0K Nov 23 17:[39](https://github.com/bsa7/pretrained-app/actions/runs/3534337993/jobs/5931088769#step:5:40) _temp
drwxr-xr-x 3 runner docker 4.0K Nov 23 17:38 pretrained-app
/home/runner/work/pretrained-app/pretrained-app/api

test.log trimmed
...

│ /resource_loader.py:115 in recursive_search_dir │
│ │
│ 112 │ seeked_file = config.get('filename_format').format(namespace=s │
│ 113 │ dir_content = os.listdir(os.path.join(root_dir, directory)) │
│ 114 │ if seeked_file in dir_content: │
│ ❱ 115 │ │ load_translation_file(os.path.join(directory, seeked_file) │
│ 116 │ elif splitted_namespace[0] in dir_content: │
│ 117 │ │ recursive_search_dir(splitted_namespace[1:], os.path.join( │
│ 118 │
│ │
│ ╭─────────────────────────────── locals ───────────────────────────────╮ │
│ │ dir_content = ['messages.en.yml'] │ │
│ │ directory = '' │ │
│ │ locale = 'en' │ │
│ │ root_dir = '/home/runner/work/pretrained-app/pretrained-a… │ │
│ │ seeked_file = 'messages.en.yml' │ │
│ │ splitted_namespace = ['messages'] │ │
│ ╰──────────────────────────────────────────────────────────────────────╯ │
│ │
│ /opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/i18n │
│ /resource_loader.py:72 in load_translation_file │
│ │
│ 69 def load_translation_file(filename, base_directory, locale=config. │
│ 70 │ skip_locale_root_data = config.get('skip_locale_root_data') │
│ 71 │ root_data = None if skip_locale_root_data else locale │
│ ❱ 72 │ translations_dic = load_resource(os.path.join(base_directory, │
│ 73 │ namespace = get_namespace_from_filepath(filename) │
│ 74 │ load_translation_dic(translations_dic, namespace, locale) │
│ 75 │
│ │
│ ╭─────────────────────────────── locals ───────────────────────────────╮ │
│ │ base_directory = '/home/runner/work/pretrained-app/pretraine… │ │
│ │ filename = 'messages.en.yml' │ │
│ │ locale = 'en' │ │
│ │ root_data = 'en' │ │
│ │ skip_locale_root_data = False │ │
│ ╰──────────────────────────────────────────────────────────────────────╯ │
│ │
│ /opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/i18n │
│ /resource_loader.py:23 in load_resource │
│ │
│ 20 def load_resource(filename, root_data): │
│ 21 │ extension = os.path.splitext(filename)[1][1:] │
│ 22 │ if extension not in loaders: │
│ ❱ 23 │ │ raise I18nFileLoadError("no loader available for extension │
│ 24 │ return getattr(loaders[extension], "load_resource")(filename, │
│ 25 │
│ 26 │
│ │
│ ╭─────────────────────────────── locals ───────────────────────────────╮ │
│ │ extension = 'yml' │ │
│ │ filename = '/home/runner/work/pretrained-app/pretrained-app/api/co… │ │
│ │ root_data = 'en' │ │
│ ╰──────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────╯
I18nFileLoadError: no loader available for extension yml

Captured stdout

Initialize application log for environment "environment_name='test'"
self.fix_pathname(os.path.abspath(__file__ + "/../../"))='/home/runner/work/pretrained-app/pretrained-app/api'
self.fix_pathname(os.path.abspath(__file__ + "/../../"))='/home/runner/work/pretrained-app/pretrained-app/api'
self.fix_pathname(os.path.abspath(__file__ + "/../../"))='/home/runner/work/pretrained-app/pretrained-app/api'

I18n initialization. Locale folder:
/home/runner/work/pretrained-app/pretrained-app/api/config/locales,
root_path: /home/runner/work/pretrained-app/pretrained-app/api

i18n.config.settings={'filename_format': '{namespace}.{locale}.{format}',
'file_format': 'yml', 'available_locales': ['en'], 'load_path':
['/home/runner/work/pretrained-app/pretrained-app/api/config/locales'],
'locale': 'en', 'fallback': 'en', 'placeholder_delimiter': '%',
'error_on_missing_translation': True, 'error_on_missing_placeholder': False,
'error_on_missing_plural': False, 'encoding': 'utf-8',
'namespace_delimiter': '.', 'plural_few': 5, 'skip_locale_root_data': False,
'enable_memoization': False}

────────────────────────────────────────────────────────────────────────────────
╭──────────── Results ────────────╮
│ 9 Tests Encountered │
│ 6 Passes (66.7%) │
│ 3 Failures (33.3%) │
╰─────────────────────────────────╯
──────────────────────────── FAILED in 3.97 seconds ────────────────────────────
Error: Process completed with exit code 1.

```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.