beeware / beeware/toga

Cross-platform, high level file I/O module

Open
#1,171 23 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

awaiting details enhancement
Dominant language
Python
Stars
5.4k
Forks
829
Avg merge
15h 39m
Merged PRs (30d)
40

Description

Is your feature request related to a problem? Please describe.
There is the problem that in Android 11 the standard file I/O will not be supported anymore on external storage.
All file access on external storage must be done with the SAF (Storage Access Framework)
https://developer.android.com/about/versions/11/privacy/storage

Describe the solution you'd like
I would like to have an abstract, cross-platform, high level module for handling file I/O.
Files should not be referenced with a file path but rather with an URI.
On Android, they would be content URIs (content://), on other platforms, we could use file URIs (file://) or whatever fits the platform.

The module should provide about following functions:

  • read a text file (with handling encoding and EOL conversion)
  • read a binary file
  • write a text file (with handling encoding and EOL conversion)
  • write a binary file
  • create a file
  • delete a file
  • create a folder
  • get content of a folder
  • delete a folder
  • check for existence
  • info about a file (size, timestamps, flags, etc.)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Android 11 Storage Access Framework documentation linked in the issue, then survey Toga's existing platform abstractions for a suitable integration point. Done means providing the requested cross-platform URI-based file and folder operations, including text encoding, EOL conversion, metadata, and Android external-storage support.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, python
Domain
mobile
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.