зеркало из
https://github.com/docxology/cognitive.git
synced 2025-10-30 12:46:04 +02:00
Updates
Этот коммит содержится в:
родитель
6c689eb7ff
Коммит
25f46c6412
@ -1,59 +0,0 @@
|
|||||||
"""
|
|
||||||
Main entry point for the ant colony simulation.
|
|
||||||
"""
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import yaml
|
|
||||||
import numpy as np
|
|
||||||
from ant_colony.visualization.renderer import SimulationRenderer
|
|
||||||
from ant_colony.agents.nestmate import Nestmate, Position, TaskType
|
|
||||||
from dataclasses import dataclass
|
|
||||||
from typing import List
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class FoodSource:
|
|
||||||
"""Represents a food source in the environment."""
|
|
||||||
position: Position
|
|
||||||
size: float
|
|
||||||
value: float
|
|
||||||
remaining: float
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class Obstacle:
|
|
||||||
"""Represents an obstacle in the environment."""
|
|
||||||
position: Position
|
|
||||||
size: float
|
|
||||||
|
|
||||||
class Simulation:
|
|
||||||
"""Main simulation class."""
|
|
||||||
|
|
||||||
def __init__(self, config_path: str):
|
|
||||||
"""Initialize simulation with configuration."""
|
|
||||||
with open(config_path, 'r') as f:
|
|
||||||
self.config = yaml.safe_load(f)
|
|
||||||
|
|
||||||
# Set random seed
|
|
||||||
np.random.seed(self.config['simulation']['random_seed'])
|
|
||||||
|
|
||||||
# Initialize environment
|
|
||||||
self.env_size = self.config['environment']['size']
|
|
||||||
self.nest_location = self.config['environment']['nest_location']
|
|
||||||
|
|
||||||
# Initialize agents
|
|
||||||
self.agents = self._create_agents()
|
|
||||||
|
|
||||||
# Initialize resources
|
|
||||||
self.food_sources = self._create_food_sources()
|
|
||||||
self.obstacles = self._create_obstacles()
|
|
||||||
|
|
||||||
# Initialize pheromone grids
|
|
||||||
self.pheromones = {
|
|
||||||
'food': np.zeros(self.env_size),
|
|
||||||
'home': np.zeros(self.env_size)
|
|
||||||
}
|
|
||||||
|
|
||||||
# Setup visualization if enabled
|
|
||||||
if self.config['visualization']['realtime']['enabled']:
|
|
||||||
self.renderer = SimulationRenderer(self.config)
|
|
||||||
else:
|
|
||||||
self.renderer = None
|
|
||||||
@ -1,247 +0,0 @@
|
|||||||
<#
|
|
||||||
.Synopsis
|
|
||||||
Activate a Python virtual environment for the current PowerShell session.
|
|
||||||
|
|
||||||
.Description
|
|
||||||
Pushes the python executable for a virtual environment to the front of the
|
|
||||||
$Env:PATH environment variable and sets the prompt to signify that you are
|
|
||||||
in a Python virtual environment. Makes use of the command line switches as
|
|
||||||
well as the `pyvenv.cfg` file values present in the virtual environment.
|
|
||||||
|
|
||||||
.Parameter VenvDir
|
|
||||||
Path to the directory that contains the virtual environment to activate. The
|
|
||||||
default value for this is the parent of the directory that the Activate.ps1
|
|
||||||
script is located within.
|
|
||||||
|
|
||||||
.Parameter Prompt
|
|
||||||
The prompt prefix to display when this virtual environment is activated. By
|
|
||||||
default, this prompt is the name of the virtual environment folder (VenvDir)
|
|
||||||
surrounded by parentheses and followed by a single space (ie. '(.venv) ').
|
|
||||||
|
|
||||||
.Example
|
|
||||||
Activate.ps1
|
|
||||||
Activates the Python virtual environment that contains the Activate.ps1 script.
|
|
||||||
|
|
||||||
.Example
|
|
||||||
Activate.ps1 -Verbose
|
|
||||||
Activates the Python virtual environment that contains the Activate.ps1 script,
|
|
||||||
and shows extra information about the activation as it executes.
|
|
||||||
|
|
||||||
.Example
|
|
||||||
Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
|
|
||||||
Activates the Python virtual environment located in the specified location.
|
|
||||||
|
|
||||||
.Example
|
|
||||||
Activate.ps1 -Prompt "MyPython"
|
|
||||||
Activates the Python virtual environment that contains the Activate.ps1 script,
|
|
||||||
and prefixes the current prompt with the specified string (surrounded in
|
|
||||||
parentheses) while the virtual environment is active.
|
|
||||||
|
|
||||||
.Notes
|
|
||||||
On Windows, it may be required to enable this Activate.ps1 script by setting the
|
|
||||||
execution policy for the user. You can do this by issuing the following PowerShell
|
|
||||||
command:
|
|
||||||
|
|
||||||
PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
||||||
|
|
||||||
For more information on Execution Policies:
|
|
||||||
https://go.microsoft.com/fwlink/?LinkID=135170
|
|
||||||
|
|
||||||
#>
|
|
||||||
Param(
|
|
||||||
[Parameter(Mandatory = $false)]
|
|
||||||
[String]
|
|
||||||
$VenvDir,
|
|
||||||
[Parameter(Mandatory = $false)]
|
|
||||||
[String]
|
|
||||||
$Prompt
|
|
||||||
)
|
|
||||||
|
|
||||||
<# Function declarations --------------------------------------------------- #>
|
|
||||||
|
|
||||||
<#
|
|
||||||
.Synopsis
|
|
||||||
Remove all shell session elements added by the Activate script, including the
|
|
||||||
addition of the virtual environment's Python executable from the beginning of
|
|
||||||
the PATH variable.
|
|
||||||
|
|
||||||
.Parameter NonDestructive
|
|
||||||
If present, do not remove this function from the global namespace for the
|
|
||||||
session.
|
|
||||||
|
|
||||||
#>
|
|
||||||
function global:deactivate ([switch]$NonDestructive) {
|
|
||||||
# Revert to original values
|
|
||||||
|
|
||||||
# The prior prompt:
|
|
||||||
if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
|
|
||||||
Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
|
|
||||||
Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
|
|
||||||
}
|
|
||||||
|
|
||||||
# The prior PYTHONHOME:
|
|
||||||
if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
|
|
||||||
Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
|
|
||||||
Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
|
|
||||||
}
|
|
||||||
|
|
||||||
# The prior PATH:
|
|
||||||
if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
|
|
||||||
Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
|
|
||||||
Remove-Item -Path Env:_OLD_VIRTUAL_PATH
|
|
||||||
}
|
|
||||||
|
|
||||||
# Just remove the VIRTUAL_ENV altogether:
|
|
||||||
if (Test-Path -Path Env:VIRTUAL_ENV) {
|
|
||||||
Remove-Item -Path env:VIRTUAL_ENV
|
|
||||||
}
|
|
||||||
|
|
||||||
# Just remove VIRTUAL_ENV_PROMPT altogether.
|
|
||||||
if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) {
|
|
||||||
Remove-Item -Path env:VIRTUAL_ENV_PROMPT
|
|
||||||
}
|
|
||||||
|
|
||||||
# Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
|
|
||||||
if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
|
|
||||||
Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
|
|
||||||
}
|
|
||||||
|
|
||||||
# Leave deactivate function in the global namespace if requested:
|
|
||||||
if (-not $NonDestructive) {
|
|
||||||
Remove-Item -Path function:deactivate
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
<#
|
|
||||||
.Description
|
|
||||||
Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
|
|
||||||
given folder, and returns them in a map.
|
|
||||||
|
|
||||||
For each line in the pyvenv.cfg file, if that line can be parsed into exactly
|
|
||||||
two strings separated by `=` (with any amount of whitespace surrounding the =)
|
|
||||||
then it is considered a `key = value` line. The left hand string is the key,
|
|
||||||
the right hand is the value.
|
|
||||||
|
|
||||||
If the value starts with a `'` or a `"` then the first and last character is
|
|
||||||
stripped from the value before being captured.
|
|
||||||
|
|
||||||
.Parameter ConfigDir
|
|
||||||
Path to the directory that contains the `pyvenv.cfg` file.
|
|
||||||
#>
|
|
||||||
function Get-PyVenvConfig(
|
|
||||||
[String]
|
|
||||||
$ConfigDir
|
|
||||||
) {
|
|
||||||
Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
|
|
||||||
|
|
||||||
# Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
|
|
||||||
$pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
|
|
||||||
|
|
||||||
# An empty map will be returned if no config file is found.
|
|
||||||
$pyvenvConfig = @{ }
|
|
||||||
|
|
||||||
if ($pyvenvConfigPath) {
|
|
||||||
|
|
||||||
Write-Verbose "File exists, parse `key = value` lines"
|
|
||||||
$pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
|
|
||||||
|
|
||||||
$pyvenvConfigContent | ForEach-Object {
|
|
||||||
$keyval = $PSItem -split "\s*=\s*", 2
|
|
||||||
if ($keyval[0] -and $keyval[1]) {
|
|
||||||
$val = $keyval[1]
|
|
||||||
|
|
||||||
# Remove extraneous quotations around a string value.
|
|
||||||
if ("'""".Contains($val.Substring(0, 1))) {
|
|
||||||
$val = $val.Substring(1, $val.Length - 2)
|
|
||||||
}
|
|
||||||
|
|
||||||
$pyvenvConfig[$keyval[0]] = $val
|
|
||||||
Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $pyvenvConfig
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
<# Begin Activate script --------------------------------------------------- #>
|
|
||||||
|
|
||||||
# Determine the containing directory of this script
|
|
||||||
$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
|
|
||||||
$VenvExecDir = Get-Item -Path $VenvExecPath
|
|
||||||
|
|
||||||
Write-Verbose "Activation script is located in path: '$VenvExecPath'"
|
|
||||||
Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
|
|
||||||
Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
|
|
||||||
|
|
||||||
# Set values required in priority: CmdLine, ConfigFile, Default
|
|
||||||
# First, get the location of the virtual environment, it might not be
|
|
||||||
# VenvExecDir if specified on the command line.
|
|
||||||
if ($VenvDir) {
|
|
||||||
Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
|
|
||||||
$VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
|
|
||||||
Write-Verbose "VenvDir=$VenvDir"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Next, read the `pyvenv.cfg` file to determine any required value such
|
|
||||||
# as `prompt`.
|
|
||||||
$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
|
|
||||||
|
|
||||||
# Next, set the prompt from the command line, or the config file, or
|
|
||||||
# just use the name of the virtual environment folder.
|
|
||||||
if ($Prompt) {
|
|
||||||
Write-Verbose "Prompt specified as argument, using '$Prompt'"
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
|
|
||||||
if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
|
|
||||||
Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
|
|
||||||
$Prompt = $pyvenvCfg['prompt'];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)"
|
|
||||||
Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
|
|
||||||
$Prompt = Split-Path -Path $venvDir -Leaf
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Verbose "Prompt = '$Prompt'"
|
|
||||||
Write-Verbose "VenvDir='$VenvDir'"
|
|
||||||
|
|
||||||
# Deactivate any currently active virtual environment, but leave the
|
|
||||||
# deactivate function in place.
|
|
||||||
deactivate -nondestructive
|
|
||||||
|
|
||||||
# Now set the environment variable VIRTUAL_ENV, used by many tools to determine
|
|
||||||
# that there is an activated venv.
|
|
||||||
$env:VIRTUAL_ENV = $VenvDir
|
|
||||||
|
|
||||||
if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
|
|
||||||
|
|
||||||
Write-Verbose "Setting prompt to '$Prompt'"
|
|
||||||
|
|
||||||
# Set the prompt to include the env name
|
|
||||||
# Make sure _OLD_VIRTUAL_PROMPT is global
|
|
||||||
function global:_OLD_VIRTUAL_PROMPT { "" }
|
|
||||||
Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
|
|
||||||
New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
|
|
||||||
|
|
||||||
function global:prompt {
|
|
||||||
Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
|
|
||||||
_OLD_VIRTUAL_PROMPT
|
|
||||||
}
|
|
||||||
$env:VIRTUAL_ENV_PROMPT = $Prompt
|
|
||||||
}
|
|
||||||
|
|
||||||
# Clear PYTHONHOME
|
|
||||||
if (Test-Path -Path Env:PYTHONHOME) {
|
|
||||||
Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
|
|
||||||
Remove-Item -Path Env:PYTHONHOME
|
|
||||||
}
|
|
||||||
|
|
||||||
# Add the venv to the PATH
|
|
||||||
Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
|
|
||||||
$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
|
|
||||||
@ -1,69 +0,0 @@
|
|||||||
# This file must be used with "source bin/activate" *from bash*
|
|
||||||
# you cannot run it directly
|
|
||||||
|
|
||||||
deactivate () {
|
|
||||||
# reset old environment variables
|
|
||||||
if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
|
|
||||||
PATH="${_OLD_VIRTUAL_PATH:-}"
|
|
||||||
export PATH
|
|
||||||
unset _OLD_VIRTUAL_PATH
|
|
||||||
fi
|
|
||||||
if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
|
|
||||||
PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
|
|
||||||
export PYTHONHOME
|
|
||||||
unset _OLD_VIRTUAL_PYTHONHOME
|
|
||||||
fi
|
|
||||||
|
|
||||||
# This should detect bash and zsh, which have a hash command that must
|
|
||||||
# be called to get it to forget past commands. Without forgetting
|
|
||||||
# past commands the $PATH changes we made may not be respected
|
|
||||||
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
|
|
||||||
hash -r 2> /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
|
|
||||||
PS1="${_OLD_VIRTUAL_PS1:-}"
|
|
||||||
export PS1
|
|
||||||
unset _OLD_VIRTUAL_PS1
|
|
||||||
fi
|
|
||||||
|
|
||||||
unset VIRTUAL_ENV
|
|
||||||
unset VIRTUAL_ENV_PROMPT
|
|
||||||
if [ ! "${1:-}" = "nondestructive" ] ; then
|
|
||||||
# Self destruct!
|
|
||||||
unset -f deactivate
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# unset irrelevant variables
|
|
||||||
deactivate nondestructive
|
|
||||||
|
|
||||||
VIRTUAL_ENV=/home/trim/Documents/GitHub/cognitive/ant_colony_env
|
|
||||||
export VIRTUAL_ENV
|
|
||||||
|
|
||||||
_OLD_VIRTUAL_PATH="$PATH"
|
|
||||||
PATH="$VIRTUAL_ENV/"bin":$PATH"
|
|
||||||
export PATH
|
|
||||||
|
|
||||||
# unset PYTHONHOME if set
|
|
||||||
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
|
|
||||||
# could use `if (set -u; : $PYTHONHOME) ;` in bash
|
|
||||||
if [ -n "${PYTHONHOME:-}" ] ; then
|
|
||||||
_OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
|
|
||||||
unset PYTHONHOME
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
|
|
||||||
_OLD_VIRTUAL_PS1="${PS1:-}"
|
|
||||||
PS1='(ant_colony_env) '"${PS1:-}"
|
|
||||||
export PS1
|
|
||||||
VIRTUAL_ENV_PROMPT='(ant_colony_env) '
|
|
||||||
export VIRTUAL_ENV_PROMPT
|
|
||||||
fi
|
|
||||||
|
|
||||||
# This should detect bash and zsh, which have a hash command that must
|
|
||||||
# be called to get it to forget past commands. Without forgetting
|
|
||||||
# past commands the $PATH changes we made may not be respected
|
|
||||||
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
|
|
||||||
hash -r 2> /dev/null
|
|
||||||
fi
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
# This file must be used with "source bin/activate.csh" *from csh*.
|
|
||||||
# You cannot run it directly.
|
|
||||||
# Created by Davide Di Blasi <davidedb@gmail.com>.
|
|
||||||
# Ported to Python 3.3 venv by Andrew Svetlov <andrew.svetlov@gmail.com>
|
|
||||||
|
|
||||||
alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate'
|
|
||||||
|
|
||||||
# Unset irrelevant variables.
|
|
||||||
deactivate nondestructive
|
|
||||||
|
|
||||||
setenv VIRTUAL_ENV /home/trim/Documents/GitHub/cognitive/ant_colony_env
|
|
||||||
|
|
||||||
set _OLD_VIRTUAL_PATH="$PATH"
|
|
||||||
setenv PATH "$VIRTUAL_ENV/"bin":$PATH"
|
|
||||||
|
|
||||||
|
|
||||||
set _OLD_VIRTUAL_PROMPT="$prompt"
|
|
||||||
|
|
||||||
if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
|
|
||||||
set prompt = '(ant_colony_env) '"$prompt"
|
|
||||||
setenv VIRTUAL_ENV_PROMPT '(ant_colony_env) '
|
|
||||||
endif
|
|
||||||
|
|
||||||
alias pydoc python -m pydoc
|
|
||||||
|
|
||||||
rehash
|
|
||||||
@ -1,69 +0,0 @@
|
|||||||
# This file must be used with "source <venv>/bin/activate.fish" *from fish*
|
|
||||||
# (https://fishshell.com/); you cannot run it directly.
|
|
||||||
|
|
||||||
function deactivate -d "Exit virtual environment and return to normal shell environment"
|
|
||||||
# reset old environment variables
|
|
||||||
if test -n "$_OLD_VIRTUAL_PATH"
|
|
||||||
set -gx PATH $_OLD_VIRTUAL_PATH
|
|
||||||
set -e _OLD_VIRTUAL_PATH
|
|
||||||
end
|
|
||||||
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
|
|
||||||
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
|
|
||||||
set -e _OLD_VIRTUAL_PYTHONHOME
|
|
||||||
end
|
|
||||||
|
|
||||||
if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
|
|
||||||
set -e _OLD_FISH_PROMPT_OVERRIDE
|
|
||||||
# prevents error when using nested fish instances (Issue #93858)
|
|
||||||
if functions -q _old_fish_prompt
|
|
||||||
functions -e fish_prompt
|
|
||||||
functions -c _old_fish_prompt fish_prompt
|
|
||||||
functions -e _old_fish_prompt
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
set -e VIRTUAL_ENV
|
|
||||||
set -e VIRTUAL_ENV_PROMPT
|
|
||||||
if test "$argv[1]" != "nondestructive"
|
|
||||||
# Self-destruct!
|
|
||||||
functions -e deactivate
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Unset irrelevant variables.
|
|
||||||
deactivate nondestructive
|
|
||||||
|
|
||||||
set -gx VIRTUAL_ENV /home/trim/Documents/GitHub/cognitive/ant_colony_env
|
|
||||||
|
|
||||||
set -gx _OLD_VIRTUAL_PATH $PATH
|
|
||||||
set -gx PATH "$VIRTUAL_ENV/"bin $PATH
|
|
||||||
|
|
||||||
# Unset PYTHONHOME if set.
|
|
||||||
if set -q PYTHONHOME
|
|
||||||
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
|
|
||||||
set -e PYTHONHOME
|
|
||||||
end
|
|
||||||
|
|
||||||
if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
|
|
||||||
# fish uses a function instead of an env var to generate the prompt.
|
|
||||||
|
|
||||||
# Save the current fish_prompt function as the function _old_fish_prompt.
|
|
||||||
functions -c fish_prompt _old_fish_prompt
|
|
||||||
|
|
||||||
# With the original prompt function renamed, we can override with our own.
|
|
||||||
function fish_prompt
|
|
||||||
# Save the return status of the last command.
|
|
||||||
set -l old_status $status
|
|
||||||
|
|
||||||
# Output the venv prompt; color taken from the blue of the Python logo.
|
|
||||||
printf "%s%s%s" (set_color 4B8BBE) '(ant_colony_env) ' (set_color normal)
|
|
||||||
|
|
||||||
# Restore the return status of the previous command.
|
|
||||||
echo "exit $old_status" | .
|
|
||||||
# Output the original/"old" prompt.
|
|
||||||
_old_fish_prompt
|
|
||||||
end
|
|
||||||
|
|
||||||
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
|
|
||||||
set -gx VIRTUAL_ENV_PROMPT '(ant_colony_env) '
|
|
||||||
end
|
|
||||||
@ -1,33 +0,0 @@
|
|||||||
#!/home/trim/Documents/GitHub/cognitive/ant_colony_env/bin/python3
|
|
||||||
# EASY-INSTALL-ENTRY-SCRIPT: 'ant-colony','console_scripts','ant-colony'
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
# for compatibility with easy_install; see #2198
|
|
||||||
__requires__ = 'ant-colony'
|
|
||||||
|
|
||||||
try:
|
|
||||||
from importlib.metadata import distribution
|
|
||||||
except ImportError:
|
|
||||||
try:
|
|
||||||
from importlib_metadata import distribution
|
|
||||||
except ImportError:
|
|
||||||
from pkg_resources import load_entry_point
|
|
||||||
|
|
||||||
|
|
||||||
def importlib_load_entry_point(spec, group, name):
|
|
||||||
dist_name, _, _ = spec.partition('==')
|
|
||||||
matches = (
|
|
||||||
entry_point
|
|
||||||
for entry_point in distribution(dist_name).entry_points
|
|
||||||
if entry_point.group == group and entry_point.name == name
|
|
||||||
)
|
|
||||||
return next(matches).load()
|
|
||||||
|
|
||||||
|
|
||||||
globals().setdefault('load_entry_point', importlib_load_entry_point)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
|
||||||
sys.exit(load_entry_point('ant-colony', 'console_scripts', 'ant-colony')())
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
#!/home/trim/Documents/GitHub/cognitive/ant_colony_env/bin/python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
from numpy.f2py.f2py2e import main
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
|
||||||
sys.exit(main())
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
#!/home/trim/Documents/GitHub/cognitive/ant_colony_env/bin/python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
from fontTools.__main__ import main
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
|
||||||
sys.exit(main())
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
#!/home/trim/Documents/GitHub/cognitive/ant_colony_env/bin/python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
from numpy._configtool import main
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
|
||||||
sys.exit(main())
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
#!/home/trim/Documents/GitHub/cognitive/ant_colony_env/bin/python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
from pip._internal.cli.main import main
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
|
||||||
sys.exit(main())
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
#!/home/trim/Documents/GitHub/cognitive/ant_colony_env/bin/python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
from pip._internal.cli.main import main
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
|
||||||
sys.exit(main())
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
#!/home/trim/Documents/GitHub/cognitive/ant_colony_env/bin/python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
from pip._internal.cli.main import main
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
|
||||||
sys.exit(main())
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
#!/home/trim/Documents/GitHub/cognitive/ant_colony_env/bin/python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
from fontTools.merge import main
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
|
||||||
sys.exit(main())
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
#!/home/trim/Documents/GitHub/cognitive/ant_colony_env/bin/python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
from fontTools.subset import main
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
|
||||||
sys.exit(main())
|
|
||||||
@ -1 +0,0 @@
|
|||||||
python3
|
|
||||||
@ -1 +0,0 @@
|
|||||||
/usr/bin/python3
|
|
||||||
@ -1 +0,0 @@
|
|||||||
python3
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
#!/home/trim/Documents/GitHub/cognitive/ant_colony_env/bin/python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
from fontTools.ttx import main
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
|
||||||
sys.exit(main())
|
|
||||||
@ -1 +0,0 @@
|
|||||||
lib
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
home = /usr/bin
|
|
||||||
include-system-site-packages = false
|
|
||||||
version = 3.11.2
|
|
||||||
executable = /usr/bin/python3.11
|
|
||||||
command = /home/trim/Documents/GitHub/cognitive/ant_colony_env/bin/python3 -m venv /home/trim/Documents/GitHub/cognitive/ant_colony_env
|
|
||||||
@ -1,225 +0,0 @@
|
|||||||
.Dd May 18, 2004
|
|
||||||
.\" ttx is not specific to any OS, but contrary to what groff_mdoc(7)
|
|
||||||
.\" seems to imply, entirely omitting the .Os macro causes 'BSD' to
|
|
||||||
.\" be used, so I give a zero-width space as its argument.
|
|
||||||
.Os \&
|
|
||||||
.\" The "FontTools Manual" argument apparently has no effect in
|
|
||||||
.\" groff 1.18.1. I think it is a bug in the -mdoc groff package.
|
|
||||||
.Dt TTX 1 "FontTools Manual"
|
|
||||||
.Sh NAME
|
|
||||||
.Nm ttx
|
|
||||||
.Nd tool for manipulating TrueType and OpenType fonts
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Bk
|
|
||||||
.Op Ar option ...
|
|
||||||
.Ek
|
|
||||||
.Bk
|
|
||||||
.Ar file ...
|
|
||||||
.Ek
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
.Nm
|
|
||||||
is a tool for manipulating TrueType and OpenType fonts. It can convert
|
|
||||||
TrueType and OpenType fonts to and from an
|
|
||||||
.Tn XML Ns -based format called
|
|
||||||
.Tn TTX .
|
|
||||||
.Tn TTX
|
|
||||||
files have a
|
|
||||||
.Ql .ttx
|
|
||||||
extension.
|
|
||||||
.Pp
|
|
||||||
For each
|
|
||||||
.Ar file
|
|
||||||
argument it is given,
|
|
||||||
.Nm
|
|
||||||
detects whether it is a
|
|
||||||
.Ql .ttf ,
|
|
||||||
.Ql .otf
|
|
||||||
or
|
|
||||||
.Ql .ttx
|
|
||||||
file and acts accordingly: if it is a
|
|
||||||
.Ql .ttf
|
|
||||||
or
|
|
||||||
.Ql .otf
|
|
||||||
file, it generates a
|
|
||||||
.Ql .ttx
|
|
||||||
file; if it is a
|
|
||||||
.Ql .ttx
|
|
||||||
file, it generates a
|
|
||||||
.Ql .ttf
|
|
||||||
or
|
|
||||||
.Ql .otf
|
|
||||||
file.
|
|
||||||
.Pp
|
|
||||||
By default, every output file is created in the same directory as the
|
|
||||||
corresponding input file and with the same name except for the
|
|
||||||
extension, which is substituted appropriately.
|
|
||||||
.Nm
|
|
||||||
never overwrites existing files; if necessary, it appends a suffix to
|
|
||||||
the output file name before the extension, as in
|
|
||||||
.Pa Arial#1.ttf .
|
|
||||||
.Ss "General options"
|
|
||||||
.Bl -tag -width ".Fl t Ar table"
|
|
||||||
.It Fl h
|
|
||||||
Display usage information.
|
|
||||||
.It Fl d Ar dir
|
|
||||||
Write the output files to directory
|
|
||||||
.Ar dir
|
|
||||||
instead of writing every output file to the same directory as the
|
|
||||||
corresponding input file.
|
|
||||||
.It Fl o Ar file
|
|
||||||
Write the output to
|
|
||||||
.Ar file
|
|
||||||
instead of writing it to the same directory as the
|
|
||||||
corresponding input file.
|
|
||||||
.It Fl v
|
|
||||||
Be verbose. Write more messages to the standard output describing what
|
|
||||||
is being done.
|
|
||||||
.It Fl a
|
|
||||||
Allow virtual glyphs ID's on compile or decompile.
|
|
||||||
.El
|
|
||||||
.Ss "Dump options"
|
|
||||||
The following options control the process of dumping font files
|
|
||||||
(TrueType or OpenType) to
|
|
||||||
.Tn TTX
|
|
||||||
files.
|
|
||||||
.Bl -tag -width ".Fl t Ar table"
|
|
||||||
.It Fl l
|
|
||||||
List table information. Instead of dumping the font to a
|
|
||||||
.Tn TTX
|
|
||||||
file, display minimal information about each table.
|
|
||||||
.It Fl t Ar table
|
|
||||||
Dump table
|
|
||||||
.Ar table .
|
|
||||||
This option may be given multiple times to dump several tables at
|
|
||||||
once. When not specified, all tables are dumped.
|
|
||||||
.It Fl x Ar table
|
|
||||||
Exclude table
|
|
||||||
.Ar table
|
|
||||||
from the list of tables to dump. This option may be given multiple
|
|
||||||
times to exclude several tables from the dump. The
|
|
||||||
.Fl t
|
|
||||||
and
|
|
||||||
.Fl x
|
|
||||||
options are mutually exclusive.
|
|
||||||
.It Fl s
|
|
||||||
Split tables. Dump each table to a separate
|
|
||||||
.Tn TTX
|
|
||||||
file and write (under the name that would have been used for the output
|
|
||||||
file if the
|
|
||||||
.Fl s
|
|
||||||
option had not been given) one small
|
|
||||||
.Tn TTX
|
|
||||||
file containing references to the individual table dump files. This
|
|
||||||
file can be used as input to
|
|
||||||
.Nm
|
|
||||||
as long as the referenced files can be found in the same directory.
|
|
||||||
.It Fl i
|
|
||||||
.\" XXX: I suppose OpenType programs (exist and) are also affected.
|
|
||||||
Don't disassemble TrueType instructions. When this option is specified,
|
|
||||||
all TrueType programs (glyph programs, the font program and the
|
|
||||||
pre-program) are written to the
|
|
||||||
.Tn TTX
|
|
||||||
file as hexadecimal data instead of
|
|
||||||
assembly. This saves some time and results in smaller
|
|
||||||
.Tn TTX
|
|
||||||
files.
|
|
||||||
.It Fl y Ar n
|
|
||||||
When decompiling a TrueType Collection (TTC) file,
|
|
||||||
decompile font number
|
|
||||||
.Ar n ,
|
|
||||||
starting from 0.
|
|
||||||
.El
|
|
||||||
.Ss "Compilation options"
|
|
||||||
The following options control the process of compiling
|
|
||||||
.Tn TTX
|
|
||||||
files into font files (TrueType or OpenType):
|
|
||||||
.Bl -tag -width ".Fl t Ar table"
|
|
||||||
.It Fl m Ar fontfile
|
|
||||||
Merge the input
|
|
||||||
.Tn TTX
|
|
||||||
file
|
|
||||||
.Ar file
|
|
||||||
with
|
|
||||||
.Ar fontfile .
|
|
||||||
No more than one
|
|
||||||
.Ar file
|
|
||||||
argument can be specified when this option is used.
|
|
||||||
.It Fl b
|
|
||||||
Don't recalculate glyph bounding boxes. Use the values in the
|
|
||||||
.Tn TTX
|
|
||||||
file as is.
|
|
||||||
.El
|
|
||||||
.Sh "THE TTX FILE FORMAT"
|
|
||||||
You can find some information about the
|
|
||||||
.Tn TTX
|
|
||||||
file format in
|
|
||||||
.Pa documentation.html .
|
|
||||||
In particular, you will find in that file the list of tables understood by
|
|
||||||
.Nm
|
|
||||||
and the relations between TrueType GlyphIDs and the glyph names used in
|
|
||||||
.Tn TTX
|
|
||||||
files.
|
|
||||||
.Sh EXAMPLES
|
|
||||||
In the following examples, all files are read from and written to the
|
|
||||||
current directory. Additionally, the name given for the output file
|
|
||||||
assumes in every case that it did not exist before
|
|
||||||
.Nm
|
|
||||||
was invoked.
|
|
||||||
.Pp
|
|
||||||
Dump the TrueType font contained in
|
|
||||||
.Pa FreeSans.ttf
|
|
||||||
to
|
|
||||||
.Pa FreeSans.ttx :
|
|
||||||
.Pp
|
|
||||||
.Dl ttx FreeSans.ttf
|
|
||||||
.Pp
|
|
||||||
Compile
|
|
||||||
.Pa MyFont.ttx
|
|
||||||
into a TrueType or OpenType font file:
|
|
||||||
.Pp
|
|
||||||
.Dl ttx MyFont.ttx
|
|
||||||
.Pp
|
|
||||||
List the tables in
|
|
||||||
.Pa FreeSans.ttf
|
|
||||||
along with some information:
|
|
||||||
.Pp
|
|
||||||
.Dl ttx -l FreeSans.ttf
|
|
||||||
.Pp
|
|
||||||
Dump the
|
|
||||||
.Sq cmap
|
|
||||||
table from
|
|
||||||
.Pa FreeSans.ttf
|
|
||||||
to
|
|
||||||
.Pa FreeSans.ttx :
|
|
||||||
.Pp
|
|
||||||
.Dl ttx -t cmap FreeSans.ttf
|
|
||||||
.Sh NOTES
|
|
||||||
On MS\-Windows and MacOS,
|
|
||||||
.Nm
|
|
||||||
is available as a graphical application to which files can be dropped.
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Pa documentation.html
|
|
||||||
.Pp
|
|
||||||
.Xr fontforge 1 ,
|
|
||||||
.Xr ftinfo 1 ,
|
|
||||||
.Xr gfontview 1 ,
|
|
||||||
.Xr xmbdfed 1 ,
|
|
||||||
.Xr Font::TTF 3pm
|
|
||||||
.Sh AUTHORS
|
|
||||||
.Nm
|
|
||||||
was written by
|
|
||||||
.An -nosplit
|
|
||||||
.An "Just van Rossum" Aq just@letterror.com .
|
|
||||||
.Pp
|
|
||||||
This manual page was written by
|
|
||||||
.An "Florent Rougon" Aq f.rougon@free.fr
|
|
||||||
for the Debian GNU/Linux system based on the existing FontTools
|
|
||||||
documentation. It may be freely used, modified and distributed without
|
|
||||||
restrictions.
|
|
||||||
.\" For Emacs:
|
|
||||||
.\" Local Variables:
|
|
||||||
.\" fill-column: 72
|
|
||||||
.\" sentence-end: "[.?!][]\"')}]*\\($\\| $\\| \\| \\)[ \n]*"
|
|
||||||
.\" sentence-end-double-space: t
|
|
||||||
.\" End:
|
|
||||||
Загрузка…
x
Ссылка в новой задаче
Block a user