Todas as operações abaixo podem ser realizadas tanto pela classe Client, pela classe Application ou pela CLI. A seguir, exemplos de como executar cada uma dessas tarefas usando ambas as classes:

Obtendo uma lista de arquivos

client.app_files_list e app.files_list retornam uma lista de objetos FileInfo.
import squarecloud as square

client = square.Client(api_key='API KEY')

async def example():
    files_list = await client.app_files_list(app_id='application_id', path='/')

    for file in files_list:
        print(file.name)  # 'main.py'
        print(file.type)  # 'directory' or 'file'
        print(file.size)  # 2140
        print(file.lastModified)  # 1677112835000

Lendo um arquivo

client.read_app_file e app.read_file retornam um objeto BytesIO.
import squarecloud as square

client = square.Client(api_key='API KEY')

async def example():
    file_bytes = await client.read_app_file(
        app_id='application_id', path='main.py'
    )

    print(file_bytes)  # b'01101000 01101001'

Criando um arquivo

client.create_app_file e app.create_file retornam um objeto Response.
import squarecloud as square

client = square.Client(api_key='API KEY')

async def example():
    await client.create_app_file(
        app_id='application_id', path='/file.txt', file=square.File('file.txt')
    )

Excluindo um arquivo

client.delete_app_file e app.delete_file retornam um objeto Response.
import squarecloud as square

client = square.Client(api_key='API KEY')

async def example():
    await client.delete_app_file(app_id='application_id', path='/file.txt')

Movendo um arquivo

client.move_app_file e app.move_file retornam um objeto Response.
import squarecloud as square

client = square.Client(api_key='API KEY')


async def example():
    await client.move_app_file(
        app_id='application_id',
        origin='path/to/origin/file.py',
        dest='path/to/destination/file.py',
    )